我有一个React Native组件,需要从异步存储中获取一个对象才能进行渲染。像这样的东西。
class Class1 extends Component {
async render() {
let data = AsyncStorage.getItem('data');
return (
<View>
{data}
</View>
)
}
}
我使我的render()方法具有异步函数的原因是,我可以等待AsyncStorage.getItem()方法的返回,以便该组件不会尝试在数据之后才返回。对象已从异步存储返回。但是,当我使用“ async render()”时,我得到“不变违规:对象作为React子对象无效”。
有什么提示吗?
答案 0 :(得分:2)
不需要,您想要这样的条件渲染。
_retrieveData = async () => {
try {
const value = await AsyncStorage.getItem('data');
if (value !== null) {
// We have data!!
return (
<View>{value}</View>
);
}
} catch (error) {
// Error retrieving data
}
};
然后在渲染函数中调用它。
render() {
return (
{this._retrieveData()}
)
}