javascript - 如何使用easy-peasy在初始化时从商店显示我的列表?
问题描述
我想在初始化时从商店获取教堂列表,但我做不到。日志获取我的初始数组和新数组,但不显示。日志如下: 日志
这是我的模型:
const churchModel = {
items: [],
// ACTIONS
setAllChurches: action((state, payload) => {
state.items = payload;
}),
getInitialChurches: thunk(async (actions) => {
const { data } = await axios.post(
'http://localhost:3000/api/geo/closeto?latlong=2.3522219 48.856614&distance=10000'
);
let array = [];
const resData = data.map(async (index) => {
const res = await axios.get(`http://localhost:3000/api/institutions/all?idInstitution=${index.idInstitution}`);
array.push(res.data[0]);
});
actions.setAllChurches(array);
})
}
和我的组件:
const ChurchList = () => {
const classes = useStyles();
const setInitialChurches = useStoreActions(action => action.churches.getInitialChurches);
const churches = useStoreState(state => state.churches.items);
const [activeItem, setActiveItem] = React.useState(null);
useEffect(() => {
setInitialChurches()
}, []);
return (
<div className={classes.root} style={{marginTop: '20px',}}>
{ churches.map( (church) => (
<ChurchItem
key={ church.idInstitution }
church={ church }
setActiveItem={setActiveItem}
activeItem={activeItem}
/>)
), console.log(churches)}
</div>
)
};
export default ChurchList;
我尝试了 useEffect ,但没有任何结果。请问你能帮帮我吗 ?
解决方案
- 这不是一个放置的好位置
console.log
,要么将它放在组件渲染之外,要么放在地图内,要么放在 useEffect 上。 - 您可以通过使用 useEffect 并传递
churches
数组来实现它。
useEffect(() => {
// this will log everytime churches changes / initialized churches
console.log(churches);
}, [churches]);
推荐阅读
- python - HTML 文件仅显示来自 python walk 的最后一个文件
- php - 当我提交表单时,我的收藏被删除了 - symfony 2.8
- parsing - 如何使用 FParsec 解析固定字符串
- java - 屏幕录像机应用程序在自定义 Rom 上引发错误
- ubuntu - WSL 中的 Julia 不打开 Jupyter 笔记本
- docker - Docker - 在 docker run 中分配 ipv6 地址
- android - DragLinearLayout 属性
- c# - 创建具有可变逻辑和可变变量计数的 C# 算法
- c++ - Visual Studio Code (C++) 中的编译和输出问题
- r - 如何转换 R(wilcox 测试)等函数的公式方程?