почему данные рендера не отображаются? - PullRequest
0 голосов
/ 04 октября 2019

Привет всем, я создаю страницу реакции, где я хочу отобразить данные переменной try, которая установлена ​​в this.state, но хочу отобразить значение массива имен ** (т.е. отображаемое значение) ** на странице, но я нев состоянии показать это, но в консоли он отображает значения дисплея

import React, { Component } from 'react'
import axios from 'axios'

class Form extends Component {
    constructor() {
        super();
        this.state = {
            response: [],
            change: [],
            name: [],
            fullname:[],
            try:[],//please see the link in below to see the value of try 

        }
    }

    renderData() {
        return (this.state.try).map((item, index) => {
            const name = item.possible_persons
            let x = ""
            let y = ""
            for (x of name) {
               // console.log(x.names)
                for (y of x.names) {
                    //console.log(y.display)
                    const name = y.display
                    console.log('names',name)
                    //const dis = y.display
                    this.setState({
                        name: x.names.map((X) => x.names)
                    })
                    console.log(this.state.name,'state value')
                }
            }
            return (
                <li>{this.state.name}</li>
            )
        })
    }

    handleAll = (e) => {
        this.setState({ [e.target.name]: e.target.value }) // using this we get the form value from name attribute and display it on alert
        console.log(e.target.value)
    }

    render() {
        return (
            <div className="container">
                <div>
                    <li>    {this.state.try.map((item, index) => <div key={index}>{`change: ${item.possible_persons}  `}</div>)}</li>
                    <li>    {this.state.try.map((item, index) => <div key={index}>{`change: ${item.possible_persons[2].names[0].first}  `}</div>)}</li>
                </div>
               <li> {this.state.name.map((z, index) => { z.display })}</li>
            </div>
            )
    }
}
export default Form;

, пожалуйста, см. ссылку ниже для

попробовать значение: - https://github.com/pradeepgorule/react/blob/master/error%20file

весь код:- https://github.com/pradeepgorule/react/blob/master/error%20code

, поэтому, пожалуйста, скажите, где я должен изменить код

Ответы [ 2 ]

1 голос
/ 04 октября 2019

Вам также необходимо отобразить вложенные поля:

render() {
    return (
      <div className="container">
        <ul>
          {this.state.try.map(item =>
            item.possible_persons.map(person =>
              person.names.map((name, index) => (
                <li key={index}>{name.display}</li>
              ))
            )
          )}
        </ul>
      </div>
    );
  }
0 голосов
/ 04 октября 2019

всякий раз, когда вы используете конструктор, вы должны вызывать супер !!!

constructor(props) {
  super(props);
  // then do whatever u want
}
...