javascript - react : Uncaught TypeError between parent and child

标签 javascript reactjs

我已将组件拆分为父元素和子元素。我通过状态将数据从父级传递给子级,但收到 Uncaught TypeError: Cannot read property 'imageSource' of null 这很奇怪,因为我遵循与另一个元素相同的过程应用。我也遵循了组件和 Prop 文档,但仍然有点难过。

如果我已经定义了状态,设置它,并将它作为属性添加到 child ,为什么状态仍然是null

class Parent extends React.Component {

 constructor(){
   super();
   this.state = {
     imageSource: [],
     imageTitles: [],
   }
 }

 componentDidMount(){

 ...
 ...
 // grabbing stuff from Dropbox API
 ...
 ...

  .then(function(){
    that.setState({

      imageSource: sources,
      imageTitles: titles,

    });
   });



 render(){
   return(
      <Child imageSource={this.state.imageSource} imageTitles=
      {this.state.imageTitles} />
   );
 }
}



class Child extends React.Component{

 render(){
    if(!this.state.imageSource.length)
      return null;

      let titles = this.state.imageTitles.map((el, i) => <p>{el}</p>)

      let images = this.state.imageSource.map((el, i) =>

        <div className="imageContainer">
           <img key={i} className='images' src={el}/>
           <div className="imageTitle">{titles[i]}</div>
        </div>
       )

    return (
      <div className="ChildWrapper">
         {images}
      </div>
    );
  }
}

最佳答案

在 child 中,您将收到变量作为 Prop (而不是状态)。

在您的情况下,此代码应该有效

if(!this.props.imageSource.length)
  return null;

  let titles = this.props.imageTitles.map((el, i) => <p>{el}</p>)

  let images = this.props.imageSource.map((el, i) =>

    <div className="imageContainer">
       <img key={i} className='images' src={el}/>
       <div className="imageTitle">{titles[i]}</div>
    </div>
   )

看看这个问题,我认为它会帮助你理解差异。

What is the difference between state and props in React?

关于javascript - react : Uncaught TypeError between parent and child,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45865915/

相关文章:

javascript - JQuery - 嵌套循环问题

javascript - MomentJS 返回重复的月份?

javascript - 表 ng-repeat 的输入验证

javascript - react : FitBounds issue when passing array of longlat - react-mapbox-gl

javascript - 在捆绑的 JS reactjs 上需要未定义的错误

wordpress - 在现有的 WordPress 网站上使用react

Javascript检查目录中的文件是否可读可写或可执行

javascript - 将 ID 分配给传单中的标记

javascript - 在使用 makeStyles 的 Material ui 中,是否可以编写仅在元素具有两个类时才适用的 css 规则?

javascript - props.setActiveTab 不是函数钩子(Hook)