我刚开始使用Redux和React Native,我在尝试获取组件中存储的数据时遇到了很多困难,它是任何特殊的东西,只是一个用于修改存储的按钮和一个用于打印它的按钮,因为我在这个中还是一个新生儿
// TestComponent.js
<Button onPress={ () => { this.props.todoAdd("cafee") } }>
<Text>Covfefe</Text>
</Button>
<Button onPress={ () => { console.log(this.state) } }>
<Text>Todo alc</Text>
</Button>
const mapStateToProps = (state, props) => {
return {
todos: state,
};
};
const mapDispatchToProps = (dispatch) => {
return {
todoAdd: (name) => dispatch({type: 'TODO_ADD', todo: { id: '0', name, completed: false }}),
};
};
export default connect(mapStateToProps, mapDispatchToProps)(TestComponent)
添加按钮工作,我注册了一个订阅在App.js,所以我可以看到每一个更新在商店,我很高兴至少有一件事做的工作,但我很困惑,我想获取存储的数据,但我不能使它工作!
我读到mapStateToProps实际上监听更改和触发器,用您编写的组件所需的数据更新组件的属性,我写了props.todos = state,所以整个状态应该在这个.props.todos中,不是吗?我不知道,但当我打印组件属性时,我得到了一个空对象。
我的存储中还有其他配置文件:
第一个
我只是想知道我如何获取数据打印它,我刚刚开始学习redux所以任何提示是非常欢迎的,无论如何感谢您阅读我。
3条答案
按热度按时间t98cgbkg1#
好了,我发现我的代码有什么问题,当我尝试打印我的商店时,我正在做
console.log(this.state)
,确信mapStateToProps修改了组件的实际状态,但它没有,它将状态传递给组件的属性(正如函数名所指示的...):cwtzytmuj2#
为我工作
您操作名称
6jjcrrmo3#
尝试
console.log(this.props.todos)
由于您将整个redux存储状态Map到todos
对象,因此应该在this.props.todos
处找到它