我有一个函数,JSX
它存储从database
从而获得的价值:
const data = JSON.parse(xhr.responseText);
this.setState({ data: data });
响应格式为:
[{"id":4,"name":"Avengers: Infinity War","year":2018},{"id":5,"name":"Thor: Ragnarock","year":2017},{"id":6,"name":"Black Panther","year":2018},{"id":7,"name":"Star Wars: The Rise of Skywalker","year":2019}]
但是,我尝试使用react
table control
期望数据采用以下格式的格式:
const data = [
['1st column', '2nd column', '3rd column'],
['1st cell', '2nd cell', '3rd cell']
]
render() {
<ReactTabllist
data={data}
property={property} />
}
所以,我需要把JSON
成一个javascript
array
阵列。什么是这样做的好方法?
const data = this.state.data.map(movie => ( /* what goes here? */ ));
据我了解,您需要获取JSON中的每个属性,然后将每个元素的值放入data
-react属性中。
因此,首先,您需要确保数据库的响应格式正确,并且json解析的每个元素responseText
都与其余元素相同。
考虑到这一点:
const formattedData = this
.state
.data
.map(movie => Object.keys(movie).map(key => movie[key]));
这formattedData
就是您要作为的反应属性传递的内容data={formattedData}
另外,如果您根本不关心电影的按键,可以按照@Madmadi的建议进行操作:
const formattedData = this
.state
.data
.map(movie => Object.values(movie));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句