【问题标题】:React native not re-rendering screen after state update状态更新后反应原生不重新渲染屏幕
【发布时间】:2021-08-23 04:51:49
【问题描述】:

我正在使用react-native-seoul/masonry-list 创建砌体列表,然后从 API 获取数据并更新状态。但是,项目不会在屏幕上呈现,但状态变量的控制台日志会显示数据。其他的想法是,当我保存文件时,数据会呈现在屏幕上。

链接到EXPO SNACK

在上面的例子中,你可以看到我有两个屏幕

  • HotBytes
  • 最喜欢的

两个屏幕都使用相同的包来渲染砌体布局。但是它在 HotBytes 屏幕中有效,但在收藏屏幕中无效。

问题

在最喜欢的屏幕中获取数据并更新状态后,项目不会呈现

链接到EXPO SNACK

【问题讨论】:

  • 我看到你在 1 个地方检查 if (isMounted.current) { 另一个地方是 if (isMounted) {}
  • @DaoMinhHat 即使你把它改成isMounted.current 它也不会像预期的那样工作

标签: reactjs react-native react-navigation react-native-flatlist


【解决方案1】:

您在“AllScreenTabNavigator.js”中犯了一个小错误,将 AppBottomNavigator.Screen 的 props 命名为“children”而不是“component”,就像您对“HotBytes”所做的那样!

<AppBottomNavigator.Screen
    name="Favourite"
    component={Favourite}
    options={{
      tabBarIcon: ({ color }) => (
        <Feather name="heart" size={20} color={color} />
      ),
    }}
  />

EXPO SNACK_fixed

我认为不需要进一步解释,因为这只是“笔误”,但以防万一她是tab navigator docs

【讨论】:

  • 我正在努力解决这个问题。感谢您的解决方案。
猜你喜欢
  • 1970-01-01
  • 2020-01-13
  • 2021-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-24
  • 1970-01-01
相关资源
最近更新 更多