Reactjs 道具返回未定义

Reactjs 道具返回未定义,reactjs,Reactjs,我使用map在对象数组上循环以填充列表。当我生成正确数量的列表时,我的循环似乎正在工作,但是我无法通过道具访问数据。似乎我所有的道具都没有定义 路径:组件 function CareerPosition(props) { return ( <li> {props.uniqueId} {props.companyName} {props.positionTitle} </li> ) } 问题在于在对象中设置关键点的方式: if

我使用map在对象数组上循环以填充列表。当我生成正确数量的列表时,我的循环似乎正在工作,但是我无法通过道具访问数据。似乎我所有的道具都没有定义

路径:
组件

function CareerPosition(props) {
  return (
    <li>
      {props.uniqueId}
  {props.companyName}
  {props.positionTitle}
    </li>
  )
}

问题在于在对象中设置关键点的方式:

if (careerHistoryPositions) {
  const newData = careerHistoryPositions.map((position) =>
  ({
    'position.uniqueId': position.uniqueId || '',
    'position.company': position.company || '',
    'position.title': position.title || ''
  }));
  this.setState({
    data: newData
  })
}
您正在向所有键添加额外的单词“position”,请删除该单词,否则您需要访问
map
中的值,如下所示:

position["position.company"] 
if (careerHistoryPositions) {
    const newData = careerHistoryPositions.map((position) =>
    ({
        'uniqueId': position.uniqueId || '',
        'company': position.company || '',
        'title': position.title || ''
    }));
    this.setState({
        data: newData
    })
}
const careerPositions = this.state.data.map((position) =>
    <CareerPosition
       key={position.uniqueId}
       companyName={position.company}
       positionTitle={position.title}
       uniqueId={position.uniqueId}
    />
);
删除位置并按如下方式书写:

position["position.company"] 
if (careerHistoryPositions) {
    const newData = careerHistoryPositions.map((position) =>
    ({
        'uniqueId': position.uniqueId || '',
        'company': position.company || '',
        'title': position.title || ''
    }));
    this.setState({
        data: newData
    })
}
const careerPositions = this.state.data.map((position) =>
    <CareerPosition
       key={position.uniqueId}
       companyName={position.company}
       positionTitle={position.title}
       uniqueId={position.uniqueId}
    />
);
然后访问地图中的值,如下所示:

position["position.company"] 
if (careerHistoryPositions) {
    const newData = careerHistoryPositions.map((position) =>
    ({
        'uniqueId': position.uniqueId || '',
        'company': position.company || '',
        'title': position.title || ''
    }));
    this.setState({
        data: newData
    })
}
const careerPositions = this.state.data.map((position) =>
    <CareerPosition
       key={position.uniqueId}
       companyName={position.company}
       positionTitle={position.title}
       uniqueId={position.uniqueId}
    />
);
const careerPositions=this.state.data.map((位置)=>
);

问题在于,在componentWillReceiveProps中,您使用键
position.title
etx设置状态,但您仅以
title

试试这个

 componentWillReceiveProps(nextProps) {
    const profileCandidateCollection = nextProps.profileCandidate;
    const profileCandidateCollectionId = profileCandidateCollection._id;
    const careerHistoryPositions = profileCandidateCollection && profileCandidateCollection.careerHistoryPositions;
    console.log("componentWillReceiveProps: ", careerHistoryPositions);

    if (careerHistoryPositions) {
      const newData = careerHistoryPositions.map((position) =>
      ({
        'uniqueId': position.uniqueId || '',
        'company': position.company || '',
        'title': position.title || ''
      }));
      this.setState({
        data: newData
      })
    }
  } 


renderCareerPositions(props) {
    if(0 < this.state.data.length) {
      const careerPositions = this.state.data.map((position) =>
        <CareerPosition
          key={position.uniqueId}
          companyName={position.company}
          positionTitle={position.positionTitle}
          uniqueId={position.uniqueId}
        />
      );
      return (
        <ul>
          {careerPositions}
        </ul>
      )
    }
  }
组件将接收道具(下一步){
const profileCandidateCollection=nextProps.profileCandidate;
const profileCandidateCollectionId=profileCandidateCollection.\u id;
常量careerHistoryPositions=profileCandidateCollection&&profileCandidateCollection.careerHistoryPositions;
日志(“组件将接收道具:”,careerHistoryPositions);
if(careerHistoryPositions){
const newData=careerHistoryPositions.map((位置)=>
({
“uniqueId”:position.uniqueId | |”,
“公司”:position.company | |”,
“标题”:position.title | |”
}));
这是我的国家({
数据:新数据
})
}
} 
渲染重建(道具){
if(0
);
返回(
    {careerPositions}
) } }
我以为我在用
组件willreceiveprops(nextrops)
更新它们。如果我在
renderCareerPositions
console.log(this.state.data)
它将返回所有objects@bp123最初的问题只是一个打字错误,所以我认为有人因此而投了反对票。