Изменить редактируемый атрибут TextInput при нажатии кнопки (не работает) - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь изменить состояние с помощью нажатия кнопки, но по какой-то причине это не работает.Я видел, как другие люди делают это таким образом, и это работает.Есть ли другой способ сделать это вместо этого?или я что-то упустил?Спасибо

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

1 Ответ

0 голосов
/ 13 февраля 2019

Измените

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

на

<TouchableOpacity onPress={this.handleEdit}>

Я считаю, что, поскольку вы уже связали 'this' с функцией handleEdit, вам не нужно передавать () => больше.

...