简体   繁体   English

为什么我的数据没有在 React(NextJS) 中呈现

[英]Why Isn't My Data Being Rendered in React(NextJS)

I have the following:我有以下几点:

const OrderItems = (props) => {
  const { Order } = props.res

  return (
    <div>
      {Order.map(order => {
        if (order.OrderLines.OrderLine instanceof Array) {
          order.OrderLines.OrderLine.map(line => (
            <OrderLineItem data={line} />
          ))
        }
      })}
    </div>
  )
}

export default OrderItems

And the component:和组件:

const OrderLineItem = ({data}) => {
  console.log(data)

  return (
    <div>Order Line Item</div>
  )
}

Nothing is rendered and nothing is logged to the console.没有渲染任何内容,也没有任何内容记录到控制台。


However if I do:但是,如果我这样做:

const OrderItems = (props) => {
  const { Order } = props.res

  return (
    <div>
      {Order.map(order => {
        if (order.OrderLines.OrderLine instanceof Array) {
          order.OrderLines.OrderLine.map(line => console.log(line))
        }
      })}
    </div>
  )
}

The data I want is logged to the console.我想要的数据记录到控制台。 How can I render or pass the data from line please?请问如何从行中渲染或传递数据?

You don't return from .map() that's the reason.你没有从.map()返回,这就是原因。 You can use && instead of if .您可以使用&&而不是if

Try as the following instead:请尝试以下操作:

{Order.map(order => 
   order.OrderLines.OrderLine instanceof Array &&
      order.OrderLines.OrderLine.map(line => <OrderLineItem data={line} />)
)}

While getting the props in the child component在子组件中获取道具时

const OrderLineItem = ({ data }) => {
  console.log(data)
  // DO WHAT YOU WANT TO DO WITH THE DATA!

  return (
    <div>Order Line Item</div>
  )
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM