繁体   English   中英

当items是数组时,React items.map不是函数吗?

[英]React items.map is not a function when items is an array?

加载API并获取.map不是功能。 一直在浏览每个示例,并严格按照它们进行操作,但仍然出现此错误。 该错误当然发生在ul标签的.map

class Login extends Component {
  constructor(props) {
    super(props);
    this.state = {
      items: [],
      isLoaded: false
    };
  }

  componentDidMount() {
    fetch(
      "https://opentdb.com/api.php?amount=10&category=18&difficulty=easy&type=boolean"
    )
      .then(res => res.json())
      .then(json => {
        this.setState({ isLoaded: true, items: json });
      });
  }

  render() {
    var { isLoaded, items } = this.state;

    if (!isLoaded) {
      return <div>Loading...</div>;
    } else {
      return (
        <div className="App">
          <ul>
            {items.map(item => (
              <li key={item.results.question}>{item.results.question}</li>
            ))}
          </ul>
        </div>
      );
    }
  }
}

export default Login;

您的实际数据来自json.results ,因此您需要将json.results设置json.results

this.setState({ isLoaded: true, items: json.results });

您需要像这样迭代数组,

{ items.map(item => (
     <li key={item.question}>{item.question}</li>
))}

演示

暂无
暂无

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

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