javascript - 我的反应表代码有问题吗?我看不到我的桌子
问题描述
<div class = "sampleTable">
const TableBody = props => {
const rows = props.fillTheData.map((row, index) => {
return (
<tr key={index}>
<td>{row.name}</td>
<td>{row.job}</td>
</tr>
);
});
return <tbody>{rows}</tbody>;
}
class App extends React.Component {
render() {
const character = [
{
'name': 'Charlie',
'job': 'Janitor'
},
{
'name': 'Mac',
'job': 'Bouncer'
},
{
'name': 'Dee',
'job': 'Aspring actress'
},
{
'name': 'Dennis',
'job': 'Bartender'
}
];
return(
<Table characterData = {character}/>
)
}
}
class Table extends React.Component {
render(){
const {characters} = this.props;
return(
<table>
<TableHeader />
<TableBody fillTheData = {characters} />
</table>
)
}
}
const TableHeader = () => {
return (
<thead>
<tr>
<th>Name</th>
<th>Job</th>
</tr>
</thead>
);
}
ReactDOM.render(<App />, document.getElementById("sampleTable"))
我想在不直接使用 HTML 的情况下创建表格。相反,选择做出反应来完成这项任务是我的目的。我检查了几次,但我仍然不知道代码中发生了什么,因为我看不到表格。
现在,我们有一个很酷的 Table 组件,但是数据是硬编码的。React 的一大亮点是它如何处理数据,它使用属性(称为 props)和状态来处理数据。首先,我们将专注于使用 props 处理数据。
然后让我们将所有数据移动到一个对象数组中,就好像我们引入了一个基于 JSON 的 API。我们必须在我们的 render() 中创建这个数组。
解决方案
class App extends React.Component {
render() {
const character = [
{
'name': 'Charlie',
'job': 'Janitor'
},
{
'name': 'Mac',
'job': 'Bouncer'
},
{
'name': 'Dee',
'job': 'Aspring actress'
},
{
'name': 'Dennis',
'job': 'Bartender'
}
];
return (
<Table characters={character} /> <--- replace the props name with 'characters'
)
}
}
您的代码无法正常工作的原因是因为您将一个名为characterData
down 的道具传递给Table
,但在 内部,您正在从Table
解构,这将为您提供,因为您从未将名为Component的道具传递给您。characters
this.prop
undefined
characters
Table
推荐阅读
- android - 在surfaceview上绘图时如何设置不透明度
- c# - 如何在 xamarin 表单谷歌地图中更改位置更改事件上的 Pin 位置
- apostrophe-cms - 撇号-ui中的css错误,解决它的最佳方法?
- c++ - 对大文件执行 FFT 的最快方法是什么?
- c# - 将自定义水平滚动条的滚动同步到 datagridview 的滚动
- java - Jlabel在鼠标单击Java时更改颜色
- java - 如何在java中将数据从Mongo DB导出为excel格式
- javascript - 如何在 node.js google-translate-api 中返回翻译后的文本
- java - Jaxb 解组要映射的 xml 序列
- c# - Xamarin.Android:TabLayout - Java.Lang.ClassCastException