使用Redux分派动作后如何导航到另一个屏幕

时间:2019-01-03 01:14:31

标签: react-native redux react-redux react-thunk

在通过API分派操作以创建新对象后,它会在mapStateToProps上将其返回。 在componentDidUpdate回调中,我能够将对象映射到props并打开传递它的详细信息屏幕。问题是,当我返回并尝试创建一个新对象(只需填写表格)时,它会不断使用props中最近创建的对象来调用componentDidUpdate(因为我使用用户键入的内容和{{1}设置状态}仍然在那里。

是否存在另一个生命周期,我无法在道具或其他逻辑中获得任何垃圾?

我的调度动作:

this.props.deck

我的减速器的一部分:

this.props.createDeck(deckToBeCreated)  // dispatch an action to create a deck

如果成功,我将在此处获得由API创建的这个牌组对象:

case ADD_NEW_DECK_SUCCESS: 
     return {
         ...state,
         deck: action.deck,
     }

1 个答案:

答案 0 :(得分:1)

您可以设置ComponentDidUpdate(),使其仅在获得更新的道具时运行。

ComponentDidUpdate(prevProps){
   if(prevProps.deck !== this.props.deck){
     //do something
   }
}

这样,生命周期事件就不会继续触发。因此,您应该能够自由浏览而不用担心组件事件。