如何在 react native 中使用选择器从 redux 状态设置 usestate 的初始值?

Posted

技术标签:

【中文标题】如何在 react native 中使用选择器从 redux 状态设置 usestate 的初始值?【英文标题】:how can i set initial value for usestate from redux state using selector in react native? 【发布时间】:2022-01-14 09:52:04 【问题描述】:

当我尝试从 redux 状态设置初始值时,文本组件上没有任何内容,但我可以在控制台上看到该值

   const Profile = props => 

   const userName = useSelector(userSelector);
   const [name, setName] = useState(userName);
   
   console.log(userName);
   
       return (
           <Text>name</Text>

       );
; 

【问题讨论】:

你不需要使用useState直到你需要在本地改变它,因为使用选择器redux,当它改变时会自动更新。 【参考方案1】:

它不会这样工作,因为 redux 在初始渲染后获取它的值,所以你只需要在 redux 值更新后更新你的状态

如果你的 redux store 是一个字符串,你可以直接使用 userName 代替 name。

使用 useEffect 挂钩并将 userName 添加到其依赖项数组中。

useEffect(() => 
  setName(userName);
, [userName])

在你的 react 组件中添加这个,它会起作用的!!

【讨论】:

以上是关于如何在 react native 中使用选择器从 redux 状态设置 usestate 的初始值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在WebView中禁用用户文本选择[React-Native]

如何在React Native中使用两个选择器?

如何在 React Native 中单独显示日期时间选择器?

使用 Formik 的 React-Native 选择器

如何在 React Native 中选择一个按钮,而不选择其他按钮?

如何使用 Detox 在 React Native 中检查是不是选择或禁用了特定元素?