首页 > 解决方案 > 作为道具传递的数组被接受为字符串

问题描述

编辑:非常愚蠢地忽略了我的时间。下次我会更慢地阅读文档。

将数组作为道具传递,它被接受为具有相同名称的字符串。例如,如果我传递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

标签: reactjsredux

解决方案


问题在于您传递道具的方式,它是字符串形式的。相反,你需要写

<Table usersList={test} />

进行上述更改后,您可以通过映射道具来简单地访问数组元素,例如

this.props.usersList.map(...)

推荐阅读