React Native - Redux 不会立即更新

Posted

技术标签:

【中文标题】React Native - Redux 不会立即更新【英文标题】:ReactNative - Redux not immediately update 【发布时间】:2017-12-07 14:53:31 【问题描述】:

我知道 this.setState 是异步的。

但是现在,我使用 Redux 并且在 reducer 中没有 this.setState。我可以为 setState 使用回调,但在 redux 中我不知道将回调放在哪里以及如何放置。在行动? (否)在减速机中?在组件?在容器中?有货? (没有)。

我是 redux 和 reactnative 的新手,所以希望你能理解我的问题。

我的数据正在更新,但晚了一步。

示例:

点击:'a',状态 = ''

点击:'ab, state = 'a'

点击:'abc',状态 = 'ab'

在组件中,我这样调用函数:

let  myFunction1, myFunction2  = this.props;
myFunction1();

所以设置状态有效,但我需要晚点处理。

【问题讨论】:

【参考方案1】:

您应该使用setState 来存储价值onChange,一旦用户完成输入,您就可以调用您的reducer 函数来将价值保存到您的商店。它将减少对 reducer 函数的调用次数。

例子:

<TextInput
    underlineColorandroid='transparent'
    onSubmitEditing=() => this.onNextPress()
    onChangeText=(text) => this.onChangeText(text)
/>

使用 have onChangeText(text) 来处理您的 setState 并且一旦提交(或您的事件触发),使用另一个函数来处理 reducer 调用。在我的例子中是onNextPress()

【讨论】:

以上是关于React Native - Redux 不会立即更新的主要内容,如果未能解决你的问题,请参考以下文章

React Native 和 Redux:为啥子组件不会在每次状态更新时重新渲染?

React-Native 开发 在react-native 中 运用 redux

在 iOS 设备上使用 Redux-Persist 和 React Native 时崩溃

错误:无法解析模块 react-redux/native

使用 react-redux 与 react-native 连接时的不变违规

React Native 已经有了异步存储。为啥我应该在我的 react native 应用中使用 Redux 和 Redux Thunk?