作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用带有 thunk 的 React-Redux。我的 Action 生成器通过 thunk 启动对 API 的调用,然后按预期接收状态中的数据。
我在 useEffect 函数中调用 Action 生成器,一旦我从 API 获得数据,我想更新我作为 View 的饼图。但我不知道该怎么做。由于我在API调用成功并且数据处于状态后将数据从状态加载到数组(数据源到饼图)。
请建议下面是有问题的代码。
useEffect(()=> {
const reqData = {
"customerId" : "5",
"month" : "12",
"year" : "2019"
};
initCategoryExpInfo(reqData,()=>{
initPieChartData();
});
},[navigation,initCategoryExpInfo]);
......
const initPieChartData = () => {
for(i = 0;i < categoryExpenses.length;i++) {
var item = categoryExpenses[i];
series.push(item.expenseAmount);
}
};
export const performGetAllExpensesByCat = (reqData,callback) => (dispatch, _, {api}) => {
return getAllExpensesByCat(api)(reqData).then(res => {
console.log(res.data);
dispatch(setExpensesByCat(res));
callback();
});
};
<PieChart
chart_wh={chart_wh}
series={series}
sliceColor={sliceColor}
doughnut={true}
coverRadius={0.7}
coverFill={'#FFF'}
/>
最佳答案
你可以这样做:
useEffect(()=>{
// thunk action dispatcher for the api call on component mount
fetchDataFromApiCall()
}, [])
// In the action generator file
fetchDataFromApiCall() => {
return async (dispatch, getState) => {
await actualApiCall().then((response)=>{
dispatch(updateReduxState(response))
}
// In your component
mapStateToProps = (state) => ({
data: getDataFromReduxState(state)
})
data
做任何你想做的事。此外,每当
data
时,组件将重新渲染。变化,所以不用担心。
关于javascript - 如何在 React-redux 中状态更新后刷新组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59925579/
我是一名优秀的程序员,十分优秀!