Массив передан как проп, принят как строка - PullRequest
0 голосов
/ 17 января 2019

Редактировать: Очень глупо упускать из виду мое время. В следующий раз я буду читать документацию медленнее.

Передавая массив в качестве реквизита, он принимается как строка с тем же именем Например, если я передаю 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;

ребенок, принимающий его

импорт React из "реакции";

<code>const Table = usersList => {
return (
    <div>
        <pre>{Object.keys(usersList)}
); }; Таблица экспорта по умолчанию;

Я бы предположил, что могу просто сделать usersList.map(...), но он приходит как объект с каждым символом строки usersList. поэтому Object.keys(usersList) отображает usersList

Ответы [ 2 ]

0 голосов
/ 17 января 2019

проблема:

<Table usersList="{test}" />

фикс:

<Table usersList={test} />
0 голосов
/ 17 января 2019

Проблема в том, как вы передаете опору, которая имеет форму строки. Вместо этого вам нужно написать

<Table usersList={test} />

Как только вы сделаете вышеуказанные изменения, вы можете просто получить доступ к элементам массива, сопоставив их с реквизитами, как

this.props.usersList.map(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...