javascript - 状态未使用 React hook 更新

标签 javascript reactjs react-hooks

这是一个当组件挂载到 DOM 上时必须调用的函数

const [dashboardData, setDashboardData] = useState('');

const loadDashboardData = () => {
    console.log("Loading Dashboard Data ", campaign);
    Utils.request({
      url: `campaign/user/info`
    }).then(
      res => {
        console.log("dashboard data" , res.data)
        setDashboardData(res.data);
      },
      err => console.log(err)
    )
  }

 useEffect(() => {

    loadDashboardData();
    console.log("campaigndata",dashboardData);

  }, []);

当我在 useEffect 中控制台 dashboardData 时,它只显示一个字符串,即我作为 中的第一个参数传递的 campaigndata 。控制台.log。我认为我的仪表板状态变量没有更新

最佳答案

Answer

dashboardData 编写另一个 useEffect。

useEffect(() => {
    console.log("campaigndata",dashboardData);

}, [dashboardData]);

Explanation

您的useEffect采用空数组作为第二个参数,这使得它仅在第一次运行(如DidMount),因此它不会在更改后在组件重新渲染时重新运行状态,这就是为什么它显示空字符串作为初始状态。
为变量 dashboardData 编写另一个 useEffect 将会根据 dashboardData 的变化运行多次。

关于javascript - 状态未使用 React hook 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58844616/

相关文章:

javascript - 嵌套值的正则表达式

javascript - 如何在 React useState 中存储和更新多个值?

javascript - 如何在点击 html 链接时应用 jquery 过滤

javascript - OnCreate 函数未触发,但 OnWrite 函数触发

javascript - 使用 React.js 使用react-chartjs 在条形图中显示最新标签

css - 自定义 TTF 字体在 React 应用程序中加载缓慢

javascript - React 父组件无法更新映射的 JSX 列表中的子组件

javascript - 当我有多个子组件时,如何将值从子组件传递给父组件?

javascript - 在 ReactJS 中设置输入时出错,标签覆盖/覆盖输入集的值,使用 material.ui

javascript - 使用耳机间隙中的加速度计检测运动