reactjs - 作为道具传递的数组被接受为字符串
问题描述
编辑:非常愚蠢地忽略了我的时间。下次我会更慢地阅读文档。
将数组作为道具传递,它被接受为具有相同名称的字符串。例如,如果我传递usersList = ['Name1', 'Name2', 'Name3']
给孩子,孩子只能usersList
作为字符串访问,而不是其内容。
试过做const Table = ({usersList}) => {...}
,const Table = (usersList)=>{...}
初始化数组的父级:
import React from "react";
import { connect } from "react-redux";
import Table from "../presentational/Table.jsx";
const mapStateToProps = state => {
return { users: state.users };
};
const test = ["1", "4", "5"];
const ConnectedPeople = ({ users }) => {
return (
<ul className="list-group list-group-flush">
{console.log(test)}
<Table usersList="{test}" />
</ul>
);
};
const People = connect(mapStateToProps)(ConnectedPeople);
export default People;
接受它的孩子
从“反应”导入反应;
const Table = usersList => {
return (
<div>
<pre>{Object.keys(usersList)}</pre>
</div>
);
};
export default Table;
我会假设我可以做到usersList.map(...)
,但它作为一个对象与字符串的每个字符一起出现usersList
。所以Object.keys(usersList)
渲染usersList
解决方案
问题在于您传递道具的方式,它是字符串形式的。相反,你需要写
<Table usersList={test} />
进行上述更改后,您可以通过映射道具来简单地访问数组元素,例如
this.props.usersList.map(...)