【发布时间】:2020-12-01 17:37:42
【问题描述】:
我正在开发我的第一个 ReactJS 应用程序。在下面的代码中,count 的值在第二个 Axios post 方法中没有改变-
export default function Dashboard(props){
const [count, setCount] = useState(0);
useEffect(()=>{
let postData = new FormData();
postData.append("eiin", eiinNo);
Axios.post("url",postData).then(response=>{
if(response.data){
}
}).catch(error=>{
console.log(error);
});
Axios.post("another-url", postData).then(response=>{
const items = response.data;
items.map(item=>{
setCount(count => count + 1);
console.log(count); //count remains 0, but 2 items here.
})
}).catch(error=>{
console.log(error);
});
},[]);
}
我在这里做错了什么?
【问题讨论】:
-
您的 axios 帖子“another-url”似乎没有检索到任何数据,这就是计数器没有增加的原因
-
@zS1L3NT 有一些数据。
-
我希望 setCount 在重新渲染发生之前不会生效。
-
状态更新是异步的,你不能在“setState”之后
console.log并期望看到更新的值。 -
setCount是异步的,因此在下一行可能不会更新。如果要使用count的更新值,请添加useEffect和count作为依赖项
标签: reactjs use-effect use-state