使用map()和JSX将数据数组呈现为[[]]

伊万

我有一个函数,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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章