【发布时间】:2018-05-16 14:32:47
【问题描述】:
我正在尝试根据AsyncStorage 的承诺渲染组件,但我收到了这个错误:
异常:不变量违规:App(...):没有返回任何内容 使成为。这通常意味着缺少 return 语句。或者 不渲染,返回 null。
我确信这些组件是好的,因为我尝试单独渲染它们中的每一个并且它们都工作得很好,当我试图通过AsyncStorage.getItem 渲染它时我无法完成它。
代码:
checkToken = () => {
AsyncStorage.getItem('user')
.then((res) => {
res = JSON.parse(res)
console.log('this is checkToken()',res.token)
// this.renderUserSection(res.token);
return res.token;
})
.then((token) => {
return (
<View style={styles.container}>
{!token ? this.renderUser() : this.renderApp()}
</View>
)
})
.catch((err) => {
console.log(err)
})
}
render() {
return (
this.checkToken()
)
}
当我这样做时:
render() {
return (
this.renderUser()
)
}
效果很好!
当我这样做的时候:
render() {
return (
this.renderApp()
)
}
它工作得很好,所以功能很好,是逻辑或顶部的东西我无法工作。
【问题讨论】:
-
哎呀,你确定承诺响应中的 this 实际上指向了具有 renderuser renderApp 函数的对象吗?
-
在 ES6 中使用箭头函数声明函数时,会将
this绑定到它。 -
好的,只是为了排除这些函数在另一个作用域之类的东西。
标签: javascript reactjs react-native