如何在Redux存储中遍历数组

时间:2019-10-24 14:09:55

标签: reactjs redux react-redux

我有一家

const initialState = {
    users: dummyData,
    is_created: false
};

其中users是一个数组。然后是getUsers选择器const getUsers = state => state.users;

在组件内部,我使用了useSelector来访问我的状态。

    const { users } = useSelector(state => ({
        users: getUsers(state),
    }));

当我尝试遍历users

        for (let i = 0; i < users.length; i++) {
            //...
        }

我收到一个错误Cannot read property 'length' of undefined

2 个答案:

答案 0 :(得分:0)

myplot <- ggplot(mydata, aes(id, group = group)) + geom_bar(aes(y = value, fill = id), stat="sum") + facet_grid(~group) myplot 似乎在任意时间运行提供的功能,因此由于其useSelector的性质,不能保证在需要时定义users

解决此问题的几种方法:

首先为async定义默认值,例如:

users

那应该可以解决您的问题。

使用 const { users = [] } = useSelector(state => ({ users: getUsers(state), })); 循环增强您上面的代码将不依赖于for循环,而是使用for,如下所示:

.map

答案 1 :(得分:0)

我从redux开发工具图表中发现了错误。我正在使用CombineReducers(),并在users组件名称之后命名了reducer,即

export default combineReducers({
    users: users.reducers,
});

所以正确的选择器应该是

const getUsers = state => state['users'].users;