你好,我正在尝试动态渲染一些东西,到目前为止,这就是我所拥有的:
render() {
var contenido = [];
contenido.push(
<View style={styles.container}>
<Text style={styles.welcome}>¿Acabas de tener un accidente?</Text>
<TouchableHighlight style={styles.button} onPress={this.sendAdjusterRequest}>
<Text style={{color: 'white'}}> Pedir ajustador </Text>
</TouchableHighlight>
</View>);
return (
contenido
);
}
}
完成此操作后,我的视图上什么都没有出现,但是当我这样做时它可以工作:
return (
<View style={styles.container}>
<Text style={styles.welcome}>¿Acabas de tener un accidente?</Text>
<TouchableHighlight style={styles.button} onPress={this.sendAdjusterRequest}>
<Text style={{color: 'white'}}> Pedir ajustador </Text>
</TouchableHighlight>
</View>
);
为什么当我尝试将元素作为数组的一部分返回时却不起作用,但是当我直接将其返回时如何起作用?如何解决此问题?
预先感谢
答案 0 :(得分:1)
render()
方法不支持直接呈现仅数组的返回类型。调用React
组件的render()
方法时,它必须返回以下之一:
<div />
和<MyComponent />
是React元素,分别指示React渲染DOM节点或另一个用户定义的组件。<Child />
模式,其中test为布尔值。)有关更多信息,请查看render()
spec。
您的第一个选项不是有效的呈现选项。.但是,您的第二段代码:
return (
<View style={styles.container}>
<Text style={styles.welcome}>¿Acabas de tener un accidente?</Text>
<TouchableHighlight style={styles.button} onPress={this.sendAdjusterRequest}>
<Text style={{color: 'white'}}> Pedir ajustador </Text>
</TouchableHighlight>
</View>
);
返回由React
定义的有效JSX
元素:,即您的父<View />
组件。
如果要使用数组返回动态数据,则一个简单的示例如下所示:
render() {
const studentClasses = ['math', 'science', 'history'];
return(
studentClasses.map(singleClass => (
<li>{singleClass}</li>
));
)
}
请注意,我们正在遍历studentClasses
数组,该数组可能包含来自数据库或api调用的动态数据。然后,我们利用.map()
函数在每个类的基础上创建一个新的列表项元素。
要记住的关键是您要 从用户界面中分离数据 。然后,您可以利用数组对象上的.map()
之类的动态模板呈现帮助器功能。
希望有帮助!