[英]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.