我的主要组件叫做App。
length
拉入App
组件,如此
Table
播放器最初在app组件状态中定义为空数组。
但在我的<Table
players={players}
/>
组件中我执行此操作:
Table
为什么我会得到未定义的?
我也在我的App组件中有这个:
console.log(this.props.players, 'players');
答案 0 :(得分:1)
关于我在你的问题中的评论,你需要做这样的事情:
<Table
players={this.state.players}
/>
通过这种方式,您可以从州内获得玩家。没有&#34; this.state&#34;你会收到和未定义的错误
答案 1 :(得分:1)
您应该像这样24.16
引用object
/ array
state
或者你可以这样使用Destructuring assignment of ES6:
this.props.state.players`
示例:
const { players } = this.state;
&#13;
const Table = ({ players }) => {
return (
<table>
<thead>
<th>Name</th>
</thead>
<tbody>
{
players.map(player => {
return (
<tr>
<td>
{player}
</td>
</tr>
)
})
}
</tbody>
</table>
);
};
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
players: ['john', 'alex', 'chris', 'dan']
};
}
render() {
const { players } = this.state;
return (
<div>
<Table players={players} />
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById("root"));
&#13;
table {
border-collapse: collapse;
}
table, th, td {
border: 1px solid black;
}
&#13;
修改强>
作为更新问题的后续内容,这实际上取决于您设置<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>
组件的方式。
Table
。this.props.players
组件,那么它应该按预期工作但是
也许你有其他一些代码可能导致这种行为。您没有分享足够的代码让我们知道。