react-native - 如何持久化 Redux 表单值?
问题描述
我正在使用手风琴折叠反应原生来管理部分。当我折叠该部分并再次打开它时,redux 表单值消失了。我如何设法维护 Redux 表单字段值的状态。提前致谢。
这是我的代码:
<Collapse style={styles.item} isCollapsed={this.state.isCollapsed_First}
onToggle={isCollapsed => this.setState({ isCollapsed_First: isCollapsed })}
>
<CollapseHeader style={styles.header}>
<View style={styles.headerContent}>
<Text style={styles.headerText} >Personal Information</Text>
<Icon name={this.state.isCollapsed_First ? "arrow-up" : "arrow-down"} size={18} color='#fff' />
</View>
</CollapseHeader>
<CollapseBody>
<View style={{flexDirection:'row',marginTop:7}}>
<View style={{width:'48%',marginRight:'4%'}}>
<Field name="first_name"
placeholder="First Name"
inputViewStyle={styles.inputView}
inputTextStyle={styles.inputText}
component={this.renderTextInput}
/>
</View>
<View style={{width:'48%'}}>
<Field name="last_name"
placeholder="Last Name"
inputViewStyle={styles.inputView}
inputTextStyle={styles.inputText}
component={this.renderTextInput}
/>
</View>
</View>
<View style={{flexDirection:'row',marginTop:-7}}>
<View style={{width:'100%'}}>
<Field name="dd_country"
placeholder="Country"
data = {this.state.countriesList}
onItemSelect={item => this.props.change('dd_country', item.id)}
textInputStyle={styles.inputView}
component={this.renderDropdownInput}
/>
</View>
</View>
<View style={{flexDirection:'row',marginTop:-7}}>
<View style={{width:'100%'}}>
<Field name="dd_ben_type"
placeholder="Beneficiary Type"
data = {this.state.custTypesList}
onItemSelect={item => this.props.change('dd_ben_type', item.id)}
textInputStyle={styles.inputView}
component={this.renderDropdownInput}
/>
</View>
</View>
</CollapseBody>
</Collapse>
解决方案
你必须自己维护它的状态。尝试维护组件中的状态,如下所示:
export function Form() {
const [name, setName] = useState('');
const [country, setCountry] = useState('');
return(
<View>
<Input
onChangeText={setName}
value={name}
placeholder='Name'
/>
<Input
onChangeText={setCountry}
value={country}
placeholder='Country'
/>
</View>
)
}
推荐阅读
- html - 如何排除 R 中的某些节点?
- ios - 主线程检查器:在后台线程上调用的 UI API
- excel - 检查日期是否有效
- salesforce-lightning - 如何在 Lightning Web 组件中使用轮播请参阅下面的代码 + 需要一些示例示例如何在 lwc 中实现
- java - Java throws 关键字
- hibernate - 急切加载能解决 n+1 问题吗?(SpringBoot/休眠)
- regex - 如何限制用户不在 Angular 中输入十进制值?
- github - 在 JetBrains GoLand 上,为什么在 GitHub 上打开操作被禁用以及如何启用它?
- ruby-on-rails - 'parseHasMany - 未找到关系 x 的模型类型' - 如何使用 Angular2-jsonapi 将嵌套 JSON 映射到模型
- javascript - 使用 React 钩子获取 setState 未定义 no-undef 错误