You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React组件点击按钮无法展示getNewResult函数返回值的问题求助

React组件点击按钮无法展示getNewResult函数返回值的问题求助

嘿,我来帮你排查下这个问题!你的代码里的核心问题是普通变量result不会触发React的重新渲染。

当你点击按钮时,确实把getNewResult()的返回值赋值给了result,但React根本追踪不到这个普通变量的变化,所以组件不会重新渲染,自然就看不到更新后的结果啦。而初始时result是null,组件第一次渲染时能正确判断不显示内容,这就是为什么你说null的情况没问题。

要解决这个问题,我们需要用React的useState钩子来管理结果状态,因为状态变量的更新会触发组件重新渲染。修改后的代码如下:

import React, { useState } from 'react';

function ResultDisplayer({ getNewResult }){
  // 用useState创建状态变量,初始值为null
  const [result, setResult] = useState(null);

  function handleClick(){
    // 通过setResult更新状态,这会触发组件重新渲染
    setResult(getNewResult());
  }

  return (<div>
    <button id="button" onClick={handleClick}>Click</button>
    {result != null && <span id="result">{result}</span>}
  </div>);
}

export function Preview() {
  return <ResultDisplayer getNewResult={() => 'test'} />;
}

export default ResultDisplayer;

主要修改点说明:

  • 新增导入useState钩子,这是React官方提供的用于管理组件内部状态的工具
  • 把原来的普通result变量替换为useState返回的状态变量和对应的更新函数setResult
  • 在handleClick函数中,调用setResult来更新结果值,这样React会感知到状态变化并重新渲染组件,你就能看到点击按钮后的结果了

备注:内容来源于stack exchange,提问作者hamza henni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 12:48:04