reactjs - 如何确保刷新页面后状态立即更新?
问题描述
当我刷新页面时,状态没有更新,尽管有时当我重新启动开发服务器时它会更新。有人可以帮我调试吗?
function App() {
const [data, setData] = useState([]);
const [q, setQ] = useState("");
useEffect(() => {
console.log('triggered')
fetch('http://localhost:5000/getCollege').then(
response =>
response.json())
.then(json => {
setData(json)
console.log(data.length)
});
}, [])
return (
<div>
<div>filter goes here</div>
<div>datatable goes here</div>
</div>
);
}
export default App; ```
解决方案
注意useEffect
,如果第二个参数是 a []
,这意味着效果函数只会在组件渲染后运行一次。要解决这个问题,您应该取出 []。
如果您希望基于某些变量重新运行效果,则可以将其放入该依赖数组中(例如 [someState, someProps, ...])
useEffect(() => {
console.log('triggered')
fetch('http://localhost:5000/getCollege').then(
response =>
response.json())
.then(json => {
setData(json)
console.log(data.length)
});
})
推荐阅读
- r - 如何在R中绑定多个数据框
- mysql - 将儒略日期转换为日历日期 YYYY-MM-DD
- javascript - 使用 js 正则表达式隐藏除最后 4 个以外的所有“数字”
- javascript - 设计系统:使用 TailwindCSS 覆盖样式
- c++ - 如何从基对象的派生类访问函数
- java - 使用 PEM 配置 Kafka 客户端单向 SSL
- javascript - Vue 插槽函数有什么用?(Vuetify 组件)
- vue.js - Vuetify 从中获取选定的索引
- sockets - HTTP/1.1 如何解决 TCP 重置问题?
- java - Eclipse JavaFX css 未知属性 -fx-background-color