问题是我正在尝试使用
启用/禁用表单中的字段我已经尝试按照本教程中的步骤进行操作
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不是函数
答案 0 :(得分:1)
我认为有一个命名问题。我遵循了您的链接,作者在那里初始化了以下状态:
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()}
/>