我试图通过单击按钮来更改状态下的可编辑状态,但是由于某些原因,它不起作用。我已经看到其他人以这种方式这样做并且有效。还有另一种方法吗?还是我错过了什么?谢谢
`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;`
答案 0 :(得分:1)
更改您的
<TouchableOpacity onPress={() => this.handleEdit}>
收件人
<TouchableOpacity onPress={this.handleEdit}>
我相信,由于您已经将'this'绑定到handleEdit函数,因此不再需要传递()=> 。