React-native-router-flux: 选择当前屏幕选项卡实例化一个新组件

创建于 2017-03-03  ·  9评论  ·  资料来源: aksonov/react-native-router-flux

我在屏幕上有一个列表视图(在我的情况下是一个选项卡),如果我再次选择该选项卡(已被选中),则会实例化一个新组件。

例如,如果我滚动列表然后点击选项卡按钮,滚动将转到顶部。 它只发生在第一次,所以如果你再次点击选项卡按钮,什么都不会发生(我猜这是预期的行为)。

在场景中移动时,“有时”(不知道确切时间)也会发生同样的情况,我认为这不应该发生,因为您将丢失以前的组件状态。

我正在使用的版本:

  • react-native-router-flux v3.38.0
  • 反应原生 v0.42.0
  • 安卓模拟器

最有用的评论

使用 react-native-router-flux v3.37.0 按预期工作(不重新渲染屏幕),因此 v3.38.0 或其依赖项似乎是一个错误。

所有9条评论

使用 react-native-router-flux v3.37.0 按预期工作(不重新渲染屏幕),因此 v3.38.0 或其依赖项似乎是一个错误。

是的,面临同样的问题,回滚到 3.37.0

即使在 3.37 我也面临同样的问题

我可以确认该问题在 3.37.0 中消失,但在 3.38.0 中确实存在。

@sk15973
确保在安装新软件包后重新启动 react-native 打包程序。

并且还要确保相应地使用 componentDidMount/componentWillMount/componentWillReceiveProps,并且不要对状态进行许多不必要的更改。

同样的问题在这里。

@sk15973在您的package.json文件中,请确保您的react-native-router-flux依赖项不包含脱字符 (^) 符号:

"dependencies": {
    "react-native-router-flux": "3.37.0",   // Good
    "react-native-router-flux": "^3.37.0", // Bad
}

使用插入符号,当您执行新的npm install时,您实际上将使用 v3.38.0。 这是因为react-native-router-flux似乎通过在次要版本中引入行为变化来破坏 semver。

请原谅我@aksonov标记你,但我认为这有点严重,因为在使用npm install react-nativer-router-flux --save时默认插入插入符号 ^ 。 随着时间的推移,这个库的用户可能会在使用新的npm install后发现自己陷入了神秘的麻烦。 但我完全理解如果你没有时间:)

我在 3.38 遇到同样的问题

@jonrh谢谢,我没有注意到,现在工作正常

@EmiPC @jonrh这个错误在 3.39.1 中解决了吗???

@iiitmahesh不幸的是我不知道。 版本 3.37.0 是我将使用这个库的最后一个版本,迁移到 React Navigation。

此页面是否有帮助?
0 / 5 - 0 等级