反应本机更改 hookState 但组件不重新渲染

react native change hookState but component does not re-render

我是 React native 开发新手

我正在使用挂钩来设置用户信息(头像+姓名)。喜欢下面

但是在 setUserAvt 和 setUserName 之后,我没有看到 RecentlyUserHeader 重新呈现,只有当我按 cmd+S 保存代码时它才会改变。谁能帮我知道这个问题?谢谢

使用带空依赖数组的useEffect意味着里面的代码只在组件挂载时执行一次。当你的组件挂载时你调用你的 api 但你也在这里设置你的导航选项。所以,这段代码也执行“一次”。但是它应该在您获得数据和 re-render 后对数据变化做出反应。试试这个:

React.useEffect(() => {
   _getMasterInfoApi()
}, [])



React.useEffect(() => {
    navigation.setOptions({
          headerTitle: props => <RecentlyUserHeader {...props, userAvt, userName} />
          ... you get the idea
    })
  }, [userAvt, userName])