使用reactjs数组中的对象

安娜·贝尔

我在构建应用程序index.js:1375时收到此错误警告:列表中的每个孩子都应该有一个唯一的“键”道具。在应用程序中(在src / index.js:7处),这是api的响应,我也有此问题,也无法正确地将数组呈现为列表

(15) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]

这是我的代码

import React, { Component } from 'react'
import ImagesSearch from './ImagesSearch'
import axios from 'axios'

export class Images extends Component {
    constructor(props) {
        super(props);
        this.state = {
          data: [],
          searchquery: '',
        };
        this.onChange = this.onChange.bind(this)
        this.onSubmit = this.onSubmit.bind(this)
    }

    onChange(e) {
        this.setState({searchquery:e.target.value})
    }

    onSubmit(e) {
        e.preventDefault()
        this.images(this.state.searchquery)
        console.log(this.state.searchquery)
    }

    images(query) {
        return axios.get(`https://api.pexels.com/v1/search? 
            query=${query}+query&per_page=15&page=1`, {
              headers: { Authorization: `` }
            }).then(res => {
               console.log(res.data.photos)
               this.setState(prevState => ({
                   data: [res.data.photos]
               }))
               console.log(this.state.data)
               return res.data
            }).catch(err => {
                console.log(err)
            })
    }

    render() {
        const mapRows = this.state.data.map((item) => (
            <div key={item.id}>
                <li>
                    <span>Name : {item.url}</span>
                    <span>User Type: {item.url}</span>
                 </li>
            </div>))

        return (
            <div>
                <form class="form-group m-2" onSubmit={this.onSubmit}>
                   <label>Search</label>
                   <input class="form-control form-control-sm w-25 mx-auto" name="searchquery" type="text" placeholder="Search" onChange={this.onChange}  />
                   <button type="submit" class="btn btn-primary mt-2">Submit</button>
                </form>
            <div>
            { mapRows }
            <div>
            </div>
        )
    }
}

export default Images

感谢您的帮助

艾伦·海利

您的setState阶段是错的[res.data.photos]res.data.photos是数组值,但您也可以再次将其设置为数组。因此,状态值将如下所示:

data: [[{...}, {...}, ..., {...}]]

您应该使用res.data.photos而不是[res.data.photos]

images(query) {
    ...
           this.setState(prevState => ({
               data: res.data.photos  // your code was [res.data.photos]
           }))
    ...
}

另外,如果ID重复indexid可以使用代替请尝试以下操作以避免Warning

const mapRows = this.state.data.map((item, index) => (
  <div key={index}>
    <li>
        <span>Name : {item.url}</span>
        <span>User Type: {item.url}</span>
     </li>
  </div>
));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用JavaScript从数组中删除重复的对象

来自分类Dev

使用Jquery或JavaScript从对象数组中删除对象数组

来自分类Dev

使用拼接从数组中删除对象

来自分类Dev

如何使用jsx渲染reactjs 1.0中的对象数组?

来自分类Dev

ReactJS-数组中对象键的setState

来自分类Dev

如何使用Lodash从数组中删除对象?

来自分类Dev

使用lodash从数组中过滤冗余对象

来自分类Dev

使用vuex截断对象数组中的文本?

来自分类Dev

ReactJS / JavaScript在对象中查找数组

来自分类Dev

如何在Reactjs中显示对象内部数组的内容

来自分类Dev

在对象数组ReactJS中访问对象的ID

来自分类Dev

ReactJS从状态(对象数组)中删除项目

来自分类Dev

在ReactJs中更新数组中的嵌套对象

来自分类Dev

使用NSDictionary对象从数组中获取对象

来自分类Dev

使用javascript对象中的数组并动态使用数组值

来自分类Dev

使用Jquery或JavaScript从对象数组中删除对象数组

来自分类Dev

如何使用jsx渲染reactjs 1.0中的对象数组?

来自分类Dev

在reactjs中迭代对象数组

来自分类Dev

使用 ReactJS 从数组中的数组中获取数据

来自分类Dev

onClick 从reactjs 中的数组中删除对象?

来自分类Dev

无法从 Reactjs 中 JSON 对象内的数组访问值

来自分类Dev

reactJs setState 更改数组中数组中对象的属性

来自分类Dev

reactJS 将对象数组添加到对象数组中的对象

来自分类Dev

ReactJS:从状态中的对象数组更新特定对象

来自分类Dev

在 Reactjs 中映射数组对象

来自分类Dev

在 ReactJS 中设置对象内的嵌套数组

来自分类Dev

如何向 ReactJs 中的对象数组添加侦听器

来自分类Dev

删除数组 reactjs 中对象特定值的重复项

来自分类Dev

通过 ReactJs 在对象数组中查找最大值

Related 相关文章

  1. 1

    使用JavaScript从数组中删除重复的对象

  2. 2

    使用Jquery或JavaScript从对象数组中删除对象数组

  3. 3

    使用拼接从数组中删除对象

  4. 4

    如何使用jsx渲染reactjs 1.0中的对象数组?

  5. 5

    ReactJS-数组中对象键的setState

  6. 6

    如何使用Lodash从数组中删除对象?

  7. 7

    使用lodash从数组中过滤冗余对象

  8. 8

    使用vuex截断对象数组中的文本?

  9. 9

    ReactJS / JavaScript在对象中查找数组

  10. 10

    如何在Reactjs中显示对象内部数组的内容

  11. 11

    在对象数组ReactJS中访问对象的ID

  12. 12

    ReactJS从状态(对象数组)中删除项目

  13. 13

    在ReactJs中更新数组中的嵌套对象

  14. 14

    使用NSDictionary对象从数组中获取对象

  15. 15

    使用javascript对象中的数组并动态使用数组值

  16. 16

    使用Jquery或JavaScript从对象数组中删除对象数组

  17. 17

    如何使用jsx渲染reactjs 1.0中的对象数组?

  18. 18

    在reactjs中迭代对象数组

  19. 19

    使用 ReactJS 从数组中的数组中获取数据

  20. 20

    onClick 从reactjs 中的数组中删除对象?

  21. 21

    无法从 Reactjs 中 JSON 对象内的数组访问值

  22. 22

    reactJs setState 更改数组中数组中对象的属性

  23. 23

    reactJS 将对象数组添加到对象数组中的对象

  24. 24

    ReactJS:从状态中的对象数组更新特定对象

  25. 25

    在 Reactjs 中映射数组对象

  26. 26

    在 ReactJS 中设置对象内的嵌套数组

  27. 27

    如何向 ReactJs 中的对象数组添加侦听器

  28. 28

    删除数组 reactjs 中对象特定值的重复项

  29. 29

    通过 ReactJs 在对象数组中查找最大值

热门标签

归档