Javascript 将状态映射到重演后不更新的道具
正在正确更新我的Redux存储,可以使用React本机调试器查看。但是,我的组件中的道具没有更新,并且没有定义 在我下面的组件中,您可以看到我已正确映射到“SessionModeler”缩减器。我已经验证了这一点,并且可以在安慰this.props时看到道具 组件:Javascript 将状态映射到重演后不更新的道具,javascript,reactjs,react-native,redux,Javascript,Reactjs,React Native,Redux,正在正确更新我的Redux存储,可以使用React本机调试器查看。但是,我的组件中的道具没有更新,并且没有定义 在我下面的组件中,您可以看到我已正确映射到“SessionModeler”缩减器。我已经验证了这一点,并且可以在安慰this.props时看到道具 组件: const mapStateToProps = state => { return { session: state.screenReducers.session, list: stat
const mapStateToProps = state => {
return {
session: state.screenReducers.session,
list: state.screenReducers.sessionList,
sessionUser: state.screenReducers.sessionUser,
user: state.sharedReducers.user,
sessionListItem: state.screenReducers.sessionListItem,
sessionSortOrder: state.sharedReducers.sessionSortOrder,
sessionModerator: state.sharedReducers.sessionModerator
};
};
我的减速器添加如下所示:
减速器索引文件:
操作文件:
减速器文件:
在下图中,您可以看到,当sessionModerator的值设置为“true”时,存储被更新,但操作期间实际道具的控制台未定义
我尝试过的:
我已经尝试了很多事情,主要是围绕我的状态结构,例如,我尝试在实际对象中添加布尔值,并将值更新为对象属性,但这似乎不起作用。我觉得我没有正确地更新布尔值,但还没有弄清楚它
任何帮助都将不胜感激。谢谢。SessionModeler在调试器的ScreenReducer中,而不是在MapStateTrops中的SharedReducer中。 试试这个:
const mapStateToProps = state => {
return {
session: state.screenReducers.session,
list: state.screenReducers.sessionList,
sessionUser: state.screenReducers.sessionUser,
user: state.sharedReducers.user,
sessionListItem: state.screenReducers.sessionListItem,
sessionSortOrder: state.sharedReducers.sessionSortOrder,
sessionModerator: state.screenReducers.sessionModerator
};
};
哈哈,谢谢你。有时候,只是需要别人指出这样一个愚蠢的错误。
import Types from '../../../types';
export const start = () => {
return {
type: Types.TYPES_SESSION_MODERATOR_START,
payload: true
};
};
export const stop = () => {
return {
type: Types.TYPES_SESSION_MODERATOR_STOP,
payload: false
};
};
import Types from '../../../types';
export const reducer = (state = false, action) => {
switch (action.type) {
case Types.TYPES_SESSION_MODERATOR_START:
return action.payload;
case Types.TYPES_SESSION_MODERATOR_STOP:
return action.payload;
default:
return state;
}
};
const mapStateToProps = state => {
return {
session: state.screenReducers.session,
list: state.screenReducers.sessionList,
sessionUser: state.screenReducers.sessionUser,
user: state.sharedReducers.user,
sessionListItem: state.screenReducers.sessionListItem,
sessionSortOrder: state.sharedReducers.sessionSortOrder,
sessionModerator: state.screenReducers.sessionModerator
};
};