反应导航-关闭抽屉后重新渲染组件

时间:2018-10-18 14:53:56

标签: react-native react-navigation

有一些方法可以在关闭抽屉导航后重新渲染组件(从 React-Navigation库)?像事件或类似的东西?

让我解释一下我的问题:我不仅仅将抽屉式导航用于导航目的,还用于应用程序中的设置。因此,例如,我想更改应用程序中的语言,然后重新渲染抽屉后面的组件(检查图像)。我该如何实现?

希望您能帮助我,谢谢!

enter image description here

2 个答案:

答案 0 :(得分:0)

1)-将抽屉连接到redux

2)-更改设置后进行调度和事件。

3)-将需要重新渲染的组件连接到redux设置状态。 如果状态发生更改,组件将自动重新呈现。

如果您不使用Redux,则可以尝试MobX或其他替代方法:

https://medium.com/@machnicki/why-redux-is-not-so-easy-some-alternatives-24816d5ad22d

如果没有适当的状态管理,您想要实现的目标可能会在代码中添加许多难看的解决方法。

答案 1 :(得分:0)

我已经使用Redux完成了您想做的事情,我认为使用它是个好主意。

话虽如此,下面是一些知道何时关闭抽屉的代码:

const defaultGetStateForAction = DrawerStack.router.getStateForAction;
DrawerStack.router.getStateForAction = (action, state) => {
  switch (action.type) {
    case "Navigation/DRAWER_CLOSED":
      // Drawer is closing code goes here...
      break;
  }

  return defaultGetStateForAction(action, state);
};