[英]React/Redux - How to display a value from Redux store in React component?
[英]React/Redux How to set value from redux store to state of component
我需要将收到的数据从 redux 存储更改为另一个变量(然后修改它)。 目前,我在 API 调用后从 store 接收数据,它存储为officeData
offices
。 有谁可以解决这个问题?
这是我的代码:
const dispatch = useDispatch();
const offices = useSelector((state) => state.office.offices)
const [officeData, setOffices] = useState(offices);
debugger;
useEffect(()=> {
dispatch(getOffices());
setOffices(offices);
debugger
}, [dispatch])
如果您甚至没有输入您的 useEffect 我认为这是因为您将dispatch
作为依赖项提供。
组件挂载时触发效果,组件更新(prop 或 state)时也会触发效果。 所以你可以做这样的事情:
import { useEffect } from "react";
const dispatch = useDispatch();
const offices = useSelector((state) => state.office.offices);
const [officeData, setOffices] = useState(undefined);
const [didMount, setDidmount] = useState(false);
// When component mount, load your Offices data
useEffect(() => {
if(!didMount){
dispatch(getOffices());
setOffices(offices);
} else {
setDidmount(true);
}
});
useEffect(() => {
if(didMount) {
// When you update officeData, do your thing
}
}, [officeData]);
我不知道 useSelector 的行为,但我猜它不会触发渲染。 也许你可以有一个 useEffect 与 office 作为依赖,只是要小心不要循环!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.