Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-从JSON到对象的数组_Javascript_Json_Reactjs - Fatal编程技术网

Javascript-从JSON到对象的数组

Javascript-从JSON到对象的数组,javascript,json,reactjs,Javascript,Json,Reactjs,我有下面的react类PeopleSelector,我想从我的people.json中获取一个people数组 // @flow import React from 'react' type Props = { currentPeople: string, setPeopleFn: (string) => void } class PeopleSelector extends React.Component { render() { let peoples = r

我有下面的react类
PeopleSelector
,我想从我的people.json中获取一个people数组

// @flow

import React from 'react'

type Props = {
  currentPeople: string,
  setPeopleFn: (string) => void
}

class PeopleSelector extends React.Component {
  render() {
    let peoples = require('../data/people.json');

    return <select value={this.props.currentPeople} onChange={e => this.props.setPeopleFn(e.target.value)}>
      <style jsx>{`
        select {
          font-size: 20px;
          line-height: 20px;
          margin-bottom: 20px;
          min-width: 300px;
        }
      `}</style>
      {peoples.map(name => (
        <option key={name}>
          {name}
        </option>
      ))}
    </select>
  }
}

export default PeopleSelector
不可能将JSON呈现为People的对象吗


使用
peoples.peoples.map
会导致以下错误:

Objects are not valid as a React child (found: object with keys 
{focusedTrackId, milestoneByTrack, name, title}). If you meant to 
render a collection of children, use an array instead.

您的
peoples
对象中有另一个
peoples
属性

因此,不要使用
peoples.map(…)
,而是使用
peoples.peoples.map(…)

此外,您在
映射
循环中错误地渲染每个
名称

{peoples.peoples.map(people => (
  <option key={people.name}>
    {people.name}
  </option>
))}
{people.people.map(people=>(
{people.name}
))}
option key={people.name}


我会使用某种类型的
id
或唯一标识符

您的
peoples
对象中有另一个
peoples
属性

因此,不要使用
peoples.map(…)
,而是使用
peoples.peoples.map(…)

此外,您在
映射
循环中错误地渲染每个
名称

{peoples.peoples.map(people => (
  <option key={people.name}>
    {people.name}
  </option>
))}
{people.people.map(people=>(
{people.name}
))}
option key={people.name}


我会使用某种类型的
id
或唯一标识符

我认为您打算做peoples.peoples.map(name=>{})


当您需要json文件时,您将其作为根对象导入。然后,peoples数组将作为.peoples导入。i、 e peoples.peoples.map()

我认为您打算做peoples.peoples.map(name=>{})

当您需要json文件时,您将其作为根对象导入。然后,peoples数组将作为.peoples导入。i、 e peoples.peoples.map()

您可以像这样清晰地提取(解构)您真正需要的零件:

let{people}=require('../data/people.json');

您可以像这样清晰地提取(解构)您真正需要的部件:

let{people}=require('../data/people.json');

然后我得到:
对象作为React子对象无效(找到:具有键{focusedTrackId,milestoneByTrack,name,title}的对象)。如果要呈现子对象集合,请改用数组。
然后我得到:
对象作为React子对象无效(找到:具有键{focusedTrackId,milestoneByTrack,name,title}的对象)。如果要呈现子对象集合,请改用数组。
然后我得到:
对象作为React子对象无效(找到:具有键{focusedTrackId,milestoneByTrack,name,title}的对象)。如果要呈现子对象集合,请使用数组。
:-(@DanielBocksteger-answer-updated。请再次检查:)您还可以告诉我如何在选择控件中返回人员对象,其中我当前只返回名称吗?@DanielBocksteger您无法返回人员对象。浏览器无法理解,将显示类似于
[Object]
的内容。然后我得到:
对象作为React子对象无效(找到:具有键{focusedTrackId,milestoneByTrack,name,title}的对象)。如果要呈现子对象集合,请使用数组。
:-(@DanielBocksteger-answer-updated。请再次检查:)您还可以告诉我如何在选择控件中返回人员对象,其中我当前只返回名称吗?@DanielBocksteger您无法返回人员对象。浏览器无法理解,将显示类似于
[Object]
的内容。使用
peoples.peoples.map
会导致
对象作为React子对象无效(找到:具有键{focusedTrackId,milestoneByTrack,name,title}的对象)。如果要呈现子对象集合,请改用数组。
使用
peoples.peoples.map
会导致
对象作为React子对象无效(找到:具有键{focusedTrackId,milestoneByTrack,name,title}的对象)。如果要呈现子对象集合,请改用数组。