为什么我不能将道具分配给常量并渲染它
Why can`t I assign the props to a constant and render it
父组件 Display
将属性提供给名为 GoodsPresentation
的子组件。
import React, { Component } from 'react';
import GoodsPresentation from "./goodsPresentation/goodsPresentation";
import ShoppingCart from "./shoppingCart/shoppingCart.component";
import axios from 'axios';
class Display extends React.Component {
constructor(props){
super(props);
this.state = {
products:null
}
}
componentDidMount() {
axios.get( backend)
.then( response => {
this.setState( {
products:response.data
});
});
}
render() {
return (
<div>
<GoodsPresentation productsArray={this.state.products? this.state.products : undefined} />
<ShoppingCart/>
</div>
);
}
}
export default Display;
这是前锋作为道具:
productsArray
效果很好。
然后我想映射产品数组(道具)并将其分配给一个名为 Data 的常量。然后我想在子组件的 return 方法中呈现数据。这会导致以下错误消息:
我不明白为什么它不起作用。我究竟做错了什么?
(数据标签下注释掉的映射工作正常)
这是 GoodsPresentation
组件:
import React, { Component } from 'react';
import Table from 'react-bootstrap/Table';
class GoodsPresentation extends React.Component {
constructor(props){
super(props);
}
componentDidMount() {
}
render() {
const Data = this.props.productsArray != undefined ? this.props.productsArray.map(
(item,index)=>{
return (
<p>Works</p>
)
}
)
:null;
return (
<Table striped bordered hover>
<thead>
<tr>
<th>#</th>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
</tr>
</thead>
<tbody>
<Data/>
{/* {this.props.productsArray != null ? this.props.productsArray.map(
(item,index)=>{
return (
<p>Works</p>
)
}
)
:null} */}
</tbody>
</Table>
);
}
}
export default GoodsPresentation;
编辑
我猜我看你的代码不够好。问题是 <Data />
组件。将其更改为 {Data}
父组件 Display
将属性提供给名为 GoodsPresentation
的子组件。
import React, { Component } from 'react';
import GoodsPresentation from "./goodsPresentation/goodsPresentation";
import ShoppingCart from "./shoppingCart/shoppingCart.component";
import axios from 'axios';
class Display extends React.Component {
constructor(props){
super(props);
this.state = {
products:null
}
}
componentDidMount() {
axios.get( backend)
.then( response => {
this.setState( {
products:response.data
});
});
}
render() {
return (
<div>
<GoodsPresentation productsArray={this.state.products? this.state.products : undefined} />
<ShoppingCart/>
</div>
);
}
}
export default Display;
这是前锋作为道具: productsArray
效果很好。
然后我想映射产品数组(道具)并将其分配给一个名为 Data 的常量。然后我想在子组件的 return 方法中呈现数据。这会导致以下错误消息:
我不明白为什么它不起作用。我究竟做错了什么? (数据标签下注释掉的映射工作正常)
这是 GoodsPresentation
组件:
import React, { Component } from 'react';
import Table from 'react-bootstrap/Table';
class GoodsPresentation extends React.Component {
constructor(props){
super(props);
}
componentDidMount() {
}
render() {
const Data = this.props.productsArray != undefined ? this.props.productsArray.map(
(item,index)=>{
return (
<p>Works</p>
)
}
)
:null;
return (
<Table striped bordered hover>
<thead>
<tr>
<th>#</th>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
</tr>
</thead>
<tbody>
<Data/>
{/* {this.props.productsArray != null ? this.props.productsArray.map(
(item,index)=>{
return (
<p>Works</p>
)
}
)
:null} */}
</tbody>
</Table>
);
}
}
export default GoodsPresentation;
编辑
我猜我看你的代码不够好。问题是 <Data />
组件。将其更改为 {Data}