我无法使用 AsyncStorage setItem
。以下是我的代码。所以我从 TextInput
获取状态名称,然后想将它存储在 AsyncStorage
onPress
的 TouchableOpacity
中。我收到错误:
import React, { Component } from 'react';
import { View, Text, StyleSheet, TextInput, TouchableOpacity} from 'react-native';
class AsyncStorage extends Component {
constructor(props) {
super(props);
this.state = {
name:''
}
//this.asyncSetName = this.asyncSetName.bind(this) //tried this too.
};
asyncSetName(){
let name = this.state.name
AsyncStorage.setItem('name', name);
}
render(){
<View>
<TextInput
placeholder='Set Name here'
onChangeText={(name) => this.setState({name})}
value={this.state.name}
autoCorrect={false}
></TextInput>
<TouchableOpacity
onPress={this.asyncSetName.bind(this)}
>
<Text>SetName</Text>
</TouchableOpacity>
</View>
}
}
我究竟做错了什么?请帮忙。
最佳答案
您需要从 AsyncStorage
导入 ojit_code
import { View, Text, StyleSheet, TextInput, TouchableOpacity , AsyncStorage} from 'react-native';
您还需要保持
react-native
函数的绑定(bind)取消注释这一行
this.asyncSetName = this.asyncSetName.bind(this)
同样由@Chris 发现,您需要将类名更改为与
asyncSetName
不同关于reactjs - 无法在 AsyncStorage 中设置项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47489936/