反应:'map' 未定义
React: 'map' is undefined
我正在尝试创建一个应用程序,将在 table 表单中输入的信息添加到 table。但是在使用智能合约之前,我想尝试仅使用 js 来完成它,方法是遵循另一个 SO 用户之前给出的 CodePen (https://codepen.io/giumagnani/pen/BJMrzW?editors=0010)。
但我收到以下错误:
TypeError: Cannot read property 'map' of undefined
.
代码如下:
class App extends Component {
constructor() {
super();
this.state = {
orderCount: 0,
OrderIDInput: null,
numberOfUpdate: null,
BarcodeInput: null,
initiatingCounterparty: '0x0',
ProductListInput: '',
TemperatureMinimalInput: null,
TemperatureMaximalInput: null,
ExpirationDateInput: '',
FinalDestinationInput: '',
date: '',
orders: []
}
};
render() {
if (!this.state.web3) {
return <div>Loading Web3, accounts, and contracts...</div>;
}
const orders = this.orders;
return (
<div className="App">
<div id="OrderListTable" class="List">
<h2>Orders</h2>
<table id="ShipmentList" class="Shipment_List">
<thead>
<tr>
<th id="OC01" class="Column">OrderID</th>
<th id="OC02" class="Column">Number of update</th>
<th id="OC03" class="Column">Barcode</th>
<th id="OC04" class="Column">Initial counterparty</th>
<th id="OC05" class="Column">Product list</th>
<th id="OC06" class="Column">Minimum temperature</th>
<th id="OC07" class="Column">Maximum temperature</th>
<th id="OC08" class="Column">Final destination</th>
<th id="OC09" class="Column">Expiration date</th>
<th id="OC10" class="Column">Date of modification</th>
</tr>
</thead>
<tbody>
{orders.map(order => {
return (
<tr>
<td>{order.OrderIDInput}</td>
<td>{order.numberOfUpdate}</td>
<td>{order.BarcodeInput}</td>
<td>{order.initiatingCounterparty}</td>
<td>{order.ProductListInput}</td>
<td>{order.TemperatureMinimalInput}</td>
<td>{order.TemperatureMaximalInput}</td>
<td>{order.FinalDestinationInput}</td>
<td>{order.ExpirationDateInput}</td>
<td>{order.date}</td>
</tr>
);
})}
</tbody>
</table>
</div>
</div>
);
}
}
export default App;
你在分配 const orders = this.orders;
时遗漏了 state
它应该是
const orders = this.state.orders;
确保您传递的是一个数组。回溯应该是数组的数据(map()
正在使用的数据)。 console.log
随处可见。
如此接近,您正试图将状态上的订单 属性 放入变量中,但您设置错误。
应该是这样;
const orders = this.state.orders;
我正在尝试创建一个应用程序,将在 table 表单中输入的信息添加到 table。但是在使用智能合约之前,我想尝试仅使用 js 来完成它,方法是遵循另一个 SO 用户之前给出的 CodePen (https://codepen.io/giumagnani/pen/BJMrzW?editors=0010)。
但我收到以下错误:
TypeError: Cannot read property 'map' of undefined
.
代码如下:
class App extends Component {
constructor() {
super();
this.state = {
orderCount: 0,
OrderIDInput: null,
numberOfUpdate: null,
BarcodeInput: null,
initiatingCounterparty: '0x0',
ProductListInput: '',
TemperatureMinimalInput: null,
TemperatureMaximalInput: null,
ExpirationDateInput: '',
FinalDestinationInput: '',
date: '',
orders: []
}
};
render() {
if (!this.state.web3) {
return <div>Loading Web3, accounts, and contracts...</div>;
}
const orders = this.orders;
return (
<div className="App">
<div id="OrderListTable" class="List">
<h2>Orders</h2>
<table id="ShipmentList" class="Shipment_List">
<thead>
<tr>
<th id="OC01" class="Column">OrderID</th>
<th id="OC02" class="Column">Number of update</th>
<th id="OC03" class="Column">Barcode</th>
<th id="OC04" class="Column">Initial counterparty</th>
<th id="OC05" class="Column">Product list</th>
<th id="OC06" class="Column">Minimum temperature</th>
<th id="OC07" class="Column">Maximum temperature</th>
<th id="OC08" class="Column">Final destination</th>
<th id="OC09" class="Column">Expiration date</th>
<th id="OC10" class="Column">Date of modification</th>
</tr>
</thead>
<tbody>
{orders.map(order => {
return (
<tr>
<td>{order.OrderIDInput}</td>
<td>{order.numberOfUpdate}</td>
<td>{order.BarcodeInput}</td>
<td>{order.initiatingCounterparty}</td>
<td>{order.ProductListInput}</td>
<td>{order.TemperatureMinimalInput}</td>
<td>{order.TemperatureMaximalInput}</td>
<td>{order.FinalDestinationInput}</td>
<td>{order.ExpirationDateInput}</td>
<td>{order.date}</td>
</tr>
);
})}
</tbody>
</table>
</div>
</div>
);
}
}
export default App;
你在分配 const orders = this.orders;
时遗漏了 state
它应该是
const orders = this.state.orders;
确保您传递的是一个数组。回溯应该是数组的数据(map()
正在使用的数据)。 console.log
随处可见。
如此接近,您正试图将状态上的订单 属性 放入变量中,但您设置错误。 应该是这样;
const orders = this.state.orders;