我得到了以下组件,我想用 defaultValue 初始化 TextInput,然后在用户键入时更新它的值。
我怎么做?
这是我尝试过的 - 但这样 TextInput 在初始化时总是空的。
class Note extends Component {
state = {
text: ""
};
render() {
const {onChange} = this.props;
return (
<TextInput
onChangeText={(text) => {
this.setState({text});
onChange(text);
}
value={this.state.text}
defaultValue={this.props.text}
/>
);
} }
“ react ”:“^ 16.4.1”
"react-native": "^0.55.4",
最佳答案
终于解决了,
关键是以下 - “值”在“默认值”之前,除非“值”未定义!
所以,初始化 this.state.text = undefined
,这样 defaultValue 就可以用 this.props.text 初始化。
class Note extends Component {
state = {
text: undefined
};
render() {
const {onChange} = this.props;
return (
<View>
<TextInput
onChangeText={(text) => {
this.setState({text});
onChange(text);
}
value={this.state.text}
defaultValue={this.props.text}
/>
</View>
);
}
}
我发现这比@anilSidhu 解决方案更干净。
关于reactjs - React Native - TextInput - 如何一起使用 value 和 defaultValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51780908/