【发布时间】:2019-07-18 07:57:45
【问题描述】:
我有一些类似的代码:
let props.n default =1
function consoleLog()
{
dispatch({n:2});
useEffect(()=>
{
async function c()
{
await new Promise((resolve,reject)=>setTimeout(() =>resolve(), 1500));
console.log(props.n);
}
c();
},[]);
return(null);
}
我得到的结果是 1 ,但不是 2 , 如何使用新道具而不使用旧道具?
【问题讨论】:
-
你需要添加
n作为依赖。不要将[]作为useEffect中的第二个参数,而是尝试设置[props.n]。这样,useEffect将在n更新时运行。使用[],isEffect只会在组件挂载时运行一次。
标签: reactjs react-redux react-hooks