问题是我正在尝试使用形式启用/禁用表单中的字段

我已经尝试按照本教程中的步骤进行操作

https://dev.to/skptricks/react-native-enable-and-disable-textinput-programmatically-1b99

到目前为止,这是我必须到达的地方


onPressButton = () => {
  this.setState({ TextInputDisableStatus: false })
}

              <TextInput
                label="Name"
                placeholder="Colin Molony"
                autoCapitalize="none"
                keyboardType="default"
                keyboardAppearance="default"
                returnKeyType="next"
                returnKeyLabel="Next"
                blurOnSubmit={false}
                selectTextOnFocus={true}
                style={styles.textInput}
                editable={this.state.TextInputDisableHolder}
            />

ProfileScreen.navigationOptions = {
  title: 'Profile Page',
  headerRight: (
    <Ionicons
        style={{padding: 15}}
        name={Platform.OS === 'ios' ? 'ios-create' : 'md-create'}
        size={26}
        onPress={this.onPressButton}
      />
  ),
};


当我单击图标时,出现以下错误this.setstate不是函数

最佳答案

我认为有一个命名问题。我按了您的链接,作者在那里初始化了以下状态:

constructor() {
super();
this.state = { TextInputDisableStatus: true }
}


在onPress方法中,您正在使用以下方式更新状态:

onPressButton = () => {
  this.setState({ TextInputDisableStatus: false })
}


但是然后在TextInput中,作者和您指的是

editable={this.state.TextInputDisableHolder}


这可能应该更改为:

editable={this.state.TextInputDisableStatus}


另外,您必须更改:

onPressButton()  {
  this.setState({ TextInputDisableStatus: false })
}


和:

<Ionicons
    style={{padding: 15}}
    name={Platform.OS === 'ios' ? 'ios-create' : 'md-create'}
    size={26}
    onPress={() => this.onPressButton()}
  />

10-06 08:21