0

我正在尝试通过单击按钮更改可编辑状态,但由于某种原因它无法正常工作。我见过其他人这样做,并且有效。还有另一种方法可以做到这一点吗?还是我错过了什么?谢谢

`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;`
4

1 回答 1

1

改变你的

<TouchableOpacity onPress={() => this.handleEdit}>

<TouchableOpacity onPress={this.handleEdit}>

我相信,由于您已经将“this”绑定到 handleEdit 函数,因此您不再需要传递() =>

于 2019-02-13T18:05:46.370 回答