如何解决react-redux存储数据-减速器设置器
我正在尝试将字典存储在react-native的react-redux中。
所以我的动作看起来像这样:
let data = {};
export const setData = (pData) => ({
type: 'SET',data: pData,//I don't know how to store the data in data declared in parent
});
export const getData = () => ({
type: 'GET',data: data,});
我的减速器看起来像这样:
const items = (state = [],action) => {
switch (action.type) {
case 'SET':
return [
//I don't know how to set the data here
];
case 'GET':
return state;
default:
return null;
}
};
export default items;
我在YouTube上看过很多教程,只是您需要将其粘贴并蓬勃发展。
如果我精通一本字典,我想我可以和其他人一起工作。
解决方法
这部分几乎正确。您不需要“ GET”来获取数据,这部分let data = {}
应该在reducer中;
export const setData = (pData) => ({
type: 'SET',data: pData,});
/*
export const getData = () => ({
type: 'GET',data: data,});
*/
减速器
const initState = {
data:[],anotherSate:[]
}
const rootReducer = (state = initState,action) => {
switch(action.type){
case 'SET': {
return {
...state,// if you have more states
data: [action.data,...state.data]
}
}
default:
return state;
}
}
export default rootReducer;
您可以获取“数据”。 “新”组件
//Your component code
//...
this.props.data // here is your "data"
//...
const mapStateToProps = (state) => {
return {
data: state.data,}
}
export default connect(mapStateToProps)(NewComponent);
为了检查您的Reducer
是否有效,请尝试在initState
中添加一些内容并将数据提取到NewComponent中。
const items = (state = [],action) => {
switch (action.type) {
case 'SET':
return {
...state,// adding the previous state first
data: action.data // here data can be any keyword you want to save your dictionary in
}
case 'GET':
return state;
default:
return null;
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。