【发布时间】:2017-10-06 17:30:32
【问题描述】:
我正在 React-Native 中构建一个表单,并将 ClearTextOnFocus 设置为 true,因为它更容易处理动态格式以进行编辑。
我正在尝试通过将所有本地状态设置为 redux 存储来添加重置功能,但是如果用户没有在选定的 TextInput 中键入任何内容,则本地状态没有改变,并且 react native 不会重新渲染文本输入;留空。
任何人都对我如何清除 TextInput 或强制 React 重新渲染有任何想法。代码正在进行中,但这里是相关的部分。
谢谢
class GoalScreen extends Component {
componentWillMount = () => this.setPropsToState();
onReset = () => {
this.setPropsToState();
}
onChange = text => this.setState({ [text.field]: text.input });
setPropsToState = () => {
const { name } = this.props.goal;
this.setState({ name });
};
render() {
const { name } = this.state;
return (
<View style={styles.screenContainer}>
<Text style={styles.text}> Name </Text>
<TextInput
placeholder="a brand new bag"
keyboardType="default"
autoCorrect={false}
style={styles.inputField}
clearTextOnFocus
onChangeText={text => this.onChange({ input: text, field: 'rate' })}
value={name}
/>
</View>
}
}
【问题讨论】:
-
我认为你的 onChangeText 属性可能是一个内联函数,如果是这样你应该考虑重写它(见cdb.reacttraining.com/…)
标签: react-native