javascript - native react : How to fix the error - Passing an inline function will cause the component state to be lost on re-render?

标签 javascript reactjs react-native react-redux

我收到此警告: “传递内联函数将导致组件状态在重新渲染时丢失,并导致性能问题,因为它会在每次渲染时重新创建。您可以将该函数作为子函数传递给“Screen”,以实现所需的行为”。 我尝试将 item 参数传递给“Neptun”组件函数类型,然后收到上述错误。 我该如何解决这个问题?

<Tab.Screen
          name="FOOD"
          component={() => <Neptun item={item} />}
          listeners={({ route }) => ({
            focus: () => {
              dispatch(
                setCurrentTabInfoAction({
                  currentTabName: route.name,
                  type: 'approved',
                })
              );
            },
          })}
        />
        <Tab.Screen

最佳答案

您可以执行以下操作... 这是警告建议的解决方案...

You can pass the function as children to 'Screen' instead to achieve the desired behaviour".

  return (
    <Tab.Screen
      name="FOOD"

      // component={() => <Neptun item={item} />}
    >
      {() => <Neptun item={item} />}
    </Tab.Screen>
  );

或者

<Tab.Screen name="FOOD" component={Neptun} />

并让 Neptun 从某种全局存储中获取 item,例如:React ContextRedux ...

关于javascript - native react : How to fix the error - Passing an inline function will cause the component state to be lost on re-render?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66418097/

相关文章:

javascript - JS - Object.keys() 中的三元语句

Javascript 参数传递不起作用

reactjs - Jest + enzyme : TypeError: Cannot read property 'htmlparser2' of undefined

react-native - React Native 纸张复选框设计不起作用,不可见,波纹效果有效

javascript - 鼠标悬停时在另一个图像之上显示图像

javascript - 避免延迟反模式

javascript - 如何将 JSX 渲染(打印)为字符串?

reactjs - 如何在 Gatsby 站点中保留或重新提供 React Context

react-native - 如果已连接,React Native 显示主页

android - 将java变量从java代码传递到react-native中的javascript代码