Chr*_*ola 3 reactjs react-native
当我尝试调用返回map方法结果的方法时,出现以下错误,Warning: Functions are not valid as a React child. This may happen if you return a Component instead of <Component /> from render但我不知道为什么。这是我的代码:
renderAlbums() {
return this.state.albums.map(album => <Text>{ album.title }</Text>);
}
render() {
return (
<View>
{ this.renderAlbums }
</View>
);
}
Run Code Online (Sandbox Code Playgroud)
但是我上面的代码我看不出问题的根源,但是当我尝试在我的render()方法中创建一个变量的map()方法时,一切都很好:
render() {
const c=this.state.albums.map(album => <Text>{ album.title }</Text>);
return (
<View>
{ c }
</View>
);
}
Run Code Online (Sandbox Code Playgroud)
我想了解为什么renderAlbums()在这里调用render 方法时它不起作用<View>{ this.renderAlbums }</View>。
而且对我来说似乎更奇怪的是,当我尝试用括号称呼renderAlbums()这样的东西<View>{ this.renderAlbums() }</View>时它起作用了,所以我真的很困惑
RIY*_*HAN 11
警告:函数作为React子元素无效。如果您返回Component而不是从render返回,则可能会发生这种情况
基本上,React期望React Elements呈现它。
在当前脚本中,this.renderAlbums是一个函数引用,该函数引用不返回任何值。React Element函数本身不响应元素。因此,React无法呈现this.renderAlbums。
<View>
{ this.renderAlbums }
</View>
Run Code Online (Sandbox Code Playgroud)
正确方法:
<View>
{ this.renderAlbums() } //it will return react element which can be rendered.
</View>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7454 次 |
| 最近记录: |