【问题标题】:TypeError: Cannot read property 'map' of undefined Reactjs?TypeError:无法读取未定义 Reactjs 的属性“地图”?
【发布时间】:2020-11-18 14:21:13
【问题描述】:

TypeError: Cannot read property 'map' of undefined Reactjs ?

我正在使用小测验模块,但显示以下错误请帮助我解决以下错误 TypeError:无法读取未定义的属性“地图” 我不知道如何解决我是新的反应豌豆帮我这个代码

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import Questionlist from './quiz/Questionlist.jsx';
import * as serviceWorker from './serviceWorker';

class Quiz extends React.Component {
    constructor(props){
        super(props);
            this.state= {
                questions : [
                    {
                        id: 1,
                        text: 'What is your name?',
                        choices:[
                            {
                                id: 'a',
                                text: 'Michael'
                            },
                            {
                                id: 'b',
                                text: 'Brand'
                            },
                            {
                                id: 'c',
                                text: 'Steven'
                            },
                        ],
                        correct: 'b'
                    },
                    {
                        id: 2,
                        text: 'What is your mother name?',
                        choices:[
                            {
                                id: 'a',
                                text: 'Sara'
                            },
                            {
                                id: 'b',
                                text: 'Denny'
                            },
                            {
                                id: 'c',
                                text: 'senny'
                            },
                        ],
                        correct: 'c'
                    },
                    {
                        id: 3,
                        text: 'What is your father name?',
                        choices:[
                            {
                                id: 'a',
                                text: 'Bobby'
                            },
                            {
                                id: 'b',
                                text: 'Harry'
                            },
                            {
                                id: 'c',
                                text: 'Waye'
                            },
                        ],
                        correct: 'c'
                    },
                    {
                        id: 4,
                        text: 'What is your friend name?',
                        choices:[
                            {
                                id: 'a',
                                text: 'John'
                            },
                            {
                                id: 'b',
                                text: 'Paul'
                            },
                            {
                                id: 'c',
                                text: 'Jose'
                            },
                        ],
                        correct: 'a'
                    },
                ],
                score: 0,
                current: 1
            }
    }

    render() {
        return <h2>I am a Car!</h2>;
    }
}

class Garage extends React.Component {
  render() {
    return (
      <div>
        <Questionlist />
      </div>
    );
  }
}

ReactDOM.render(<Garage />, document.getElementById('root'));
serviceWorker.unregister();

问题列表.jsx

import React from 'react';
import ReactDOM from 'react-dom';
import Question from './Question.jsx';

class Questionlist extends React.Component {

    render() {
        return(
            <div className="question">
                {
                    this.props.questions.map(questions => {
                        return <Question questions={questions} key={questions.id} {...this.props}  />
                    })
                }
            </div>
        )
    }
}

export default Questionlist

问题.jsx

import React from 'react';
import ReactDOM from 'react-dom';

class Question extends React.Component {

    render() {
        const {question} = this.props;
        return(
            <div className="well">
                <h3>{question.text}</h3>
                <hr />
                <ul className="list-group">
                    {
                        this.props.question.choices.map(choice =>{
                            return(
                                <li className="list-group-item">
                                    {choice.id} <input type="radio" onChange={this.onChange.bind(this)} name={question.id} value={choice.id} /> {choice.text}
                                </li>
                            )
                        })
                    }
                </ul>
            </div>
        )
    }
}

export default Question

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    到 Questionlist 你没有通过问题,它应该是:

     <Questionlist questions={this.state.questions} />
    

    【讨论】:

      【解决方案2】:

      将您的数组传递给 Questionlist 组件。

      如果没有用,请尝试删除您的 Garage 组件,因为您在测验组件中有数组(问题)。将问题从 Quiz 组件传递给 Questionlist 组件。

      而不是

      render() {
          return <h2>I am a Car!</h2>;
          }
      

      这样通过

      render() {
          return <Questionlist questions={this.state.questions} />
          }
      

      最后将根组件从 Garage 更改为 Quiz

      ReactDOM.render(<Quiz />, document.getElementById('root'));
      

      【讨论】:

      • @pus 如果回答对您有帮助,请接受/投票。编码愉快!
      猜你喜欢
      • 2018-02-08
      • 2020-04-20
      • 2021-07-11
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多