按下按钮时更改 TextInput 可编辑属性(不工作)
Change TextInput editable attribute when I press a button (Not working)
我正在尝试通过单击按钮更改可编辑状态,但由于某种原因无法正常工作。我见过其他人这样做并且有效。还有另一种方法吗?还是我错过了什么?谢谢
`class Settings extends Component {
constructor(props) {
super(props);
this.state = {
editable: false,
name: '',
};
this.handleEdit = this.handleEdit.bind(this);
this.handleName = this.handleName.bind(this);
}
handleEdit() {
this.setState({
editable: !this.state.editable,
});
}
handleName = (text) => {
this.setState({
name: text,
});
};
render() {
return(
<View style={styles.container}>
<View style={styles.headerContainer}>
<Text style={styles.header}>Settings</Text>
</View>
<View style={styles.section}>
<View style={styles.sectionTitleContainer}>
<Text style={styles.sectionTitle}>My Account</Text>
</View>
<View>
<Text>Name:</Text>
<TextInput
placeholder="name"
value={this.state.name}
onChangeText={this.handleName}
editable={this.state.editable}
/>
</View>
<View>
<TouchableOpacity onPress={() => this.handleEdit}>
<Text>Edit</Text>
</TouchableOpacity>
</View>
</View>
</View>
);
}
}
export default Settings;`
改变你的
<TouchableOpacity onPress={() => this.handleEdit}>
到
<TouchableOpacity onPress={this.handleEdit}>
我相信,由于您已经将 'this' 绑定到 handleEdit 函数,因此您不需要再传递 () =>。
我正在尝试通过单击按钮更改可编辑状态,但由于某种原因无法正常工作。我见过其他人这样做并且有效。还有另一种方法吗?还是我错过了什么?谢谢
`class Settings extends Component {
constructor(props) {
super(props);
this.state = {
editable: false,
name: '',
};
this.handleEdit = this.handleEdit.bind(this);
this.handleName = this.handleName.bind(this);
}
handleEdit() {
this.setState({
editable: !this.state.editable,
});
}
handleName = (text) => {
this.setState({
name: text,
});
};
render() {
return(
<View style={styles.container}>
<View style={styles.headerContainer}>
<Text style={styles.header}>Settings</Text>
</View>
<View style={styles.section}>
<View style={styles.sectionTitleContainer}>
<Text style={styles.sectionTitle}>My Account</Text>
</View>
<View>
<Text>Name:</Text>
<TextInput
placeholder="name"
value={this.state.name}
onChangeText={this.handleName}
editable={this.state.editable}
/>
</View>
<View>
<TouchableOpacity onPress={() => this.handleEdit}>
<Text>Edit</Text>
</TouchableOpacity>
</View>
</View>
</View>
);
}
}
export default Settings;`
改变你的
<TouchableOpacity onPress={() => this.handleEdit}>
到
<TouchableOpacity onPress={this.handleEdit}>
我相信,由于您已经将 'this' 绑定到 handleEdit 函数,因此您不需要再传递 () =>。