簡體   English   中英

反應js array.map問題

[英]react js array.map issue

class TicketDetails extends React.Component{
constructor(props){
    super(props)
    this.state ={
        datatra : '',
        display:false,
        action_id:'',
        conversation:[]
       }
}

componentWillMount(){
    this.props.fetchHeader();
    this.props.fetchEmail();
    this.getMessage();
}

getMessage = () =>{
    console.log(this.props.content);
}


componentDidMount () {



 }




onButtonPress = () => {
    console.log(this.state.data);
    this.props.pushUpdateFlag(this.state.data);
}



render(){

    const trailMessage = this.props.content.map((list,index)=>(
        <ul className="listview" key={index}>
             <li>
              <div className="item">{}{list.to}</div>
              <div className="item">{list.sender}</div>
              <div className="item">{list.subject}</div>
              <div className="sub-item">{list.email_body[1]}</div>
              <div className="sub-item">{list.email_data}</div>
              <div className="sub-item">{list.unseen}</div>
            </li>
        </ul>));

    const ticketData = this.props.header.map((list,index)=>(
        <nav key={index} className="ticket-detail-status">
         <div className="ticket-detail-status-1">
         <ul>
             <li>Ticket/# <span><strong>{list.number}</strong></span></li>
             <li>
             <select className="ticket-status-dropdown" onChange={this.onSelectChange}>
                 <option value="Open">Open</option>
                 <option value="Acknowledged">Acknowledged</option>
                 <option value="In Progress - Customer Response Recieved">In Progress - Customer Response Recieved</option>
                 <option value="In Progress - Customer response Awaited">In Progress - Customer response Awaited</option>
                 <option value="Closed">Closed</option>
                 <option value="Cancelled">Cancelled</option>
                 <option value="Complete">Complete</option>
            </select>
            <Link to="/select"><Button  onClick={this.onButtonPress} className={"ticket-detail-btn"} content={"UPDATE"}/></Link>
             </li>
         </ul>
         </div>
         <div className="ticket-detail-status-2">
           <ul className="ticket-details-info">
              <li>current state : <span>open</span></li>
              <li>Open Date : <span>{list.creation_date}</span></li>
              <li>Agent name : <span>{list.agent}</span></li>
           </ul>
           <ul className="ticket-details-info">
            <li>Total conversation : <span>6</span></li>
            <li>Closed Date : <span>10/12/18</span></li>
            <li>SLA : <span>80%</span></li>
           </ul>
         </div>
         </nav>
    ));

      if(this.props.content.length === 0){
        return(<Loader/>)
    }else{
        return(
            <div className="ticket-details">
            {ticketData}
            <div className="conversation-view-selector">
              <div className="conversation-view-filter">
              <ul>
                  <li>view</li>
                  <li>
                      <select className="select-view">
                          <option value="conversation">conversation</option>
                          <option value="state">state</option>
                          <option value="sla">sla</option>
                      </select>
                  </li>
                  <li>sort</li>
                  <li>
                      <select className="select-view">
                          <option value="conversation">select</option>
                          <option value="state">ascending</option>
                          <option value="sla">descending</option>
                      </select>
                  </li>
              </ul>
              </div>
              <div className="conversation-list-populater">
              <div className="conversation-list-populater-open">
              <span className="conversation-list-populater-flags">open</span>
              </div>
               {trailMessage}
                <div className="conversation-list-populater-close">
                <span className="conversation-list-populater-flags">close</span>
                </div>
              </div>
           </div>
           <div className="conversation-view">
           <section className="conversation-view-display">
                  <div className="conversation-view-display-compose">
                      <div className="conversation-view-display-compose-closure">
                          <span><i className="fa fa-times"></i></span>
                      </div>
                      <div className="conversation-view-display-message-form">
                          <form className="conversation-view-display-message-form">
                              <ul>
                                  <li><input type="mail" placeholder="From" name='email'/></li>
                                  <li><input type="mail" placeholder="Date" name='CC'/></li>
                                  <li><input type="mail" placeholder="T0" name='BCC' /></li>
                                  <li><input type="text" placeholder="CC" name='Subject'/></li>
                              </ul>
                              <div className="attachements-counter-placeholder">
                                  Attchements
                              </div>
                              <div className="conversation-view-display-mail-text-area">
                                  {/* <textarea placeholder="Please Pen Here"></textarea> */}
                              </div>
                              <ul className="conversation-view-display-files-men">
                                  <li><i className="fa fa-paperclip"></i></li>
                                  <li><i className="fa fa-link"></i></li>
                              </ul>
                          </form>
                      </div>
                  </div>
              </section>
           </div>
          </div>
)

錯誤

對象作為React子對象無效(找到:帶有鍵{body}的對象)。 如果要渲染子級集合,請改用數組。

我無法理解此錯誤,因為我之前已使用這種以HTML形式映射多個數組的方法。 如果可能的話,有人可以告訴我這個問題嗎?

您的代碼看起來正確,並且如注釋中所述, email_body行中的錯誤。

您可以通過確保email_body是一個數組並在其中包含元素來解決問題

你可以改變

  <div className="sub-item">{list.email_body[1]}</div>

  <div className="sub-item">{list.email_body.length >= 1 && list.email_body[1]}</div>

它將解決問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM