React:从嵌套道具返回最后一个子对象

时间:2016-07-12 20:22:25

标签: javascript object reactjs

我在对象中的对象中的对象中有一个密钥对对象。 I Object.assign中间层,因此新对象是对象中的对象。

我发送这个新对象作为道具。

我可以在console.log中查看新的父级和子级并查看该对象,但尝试使用console.log返回最后一个子级

  

未捕获的TypeError:无法读取未定义的属性'child'。

Wagwan?

obj:
    {
    Something: Null,
    Grandparent: {
        SomethinElse: Null,
        Parent: {
            SomethingMore: Null,
            Child: {
                SomeValue: "Duck"
            }
        }
    }

newObj:
    Child: {
        SomeValue: "Duck"
    }

然后我设置

this.state.cow: newObj

然后我发送给组件并致电

{console.log(this.props.cow)}
  

对象:{SomeValue:“Duck”}

好。然后我记录或渲染

{console.log(this.props.cow.SomeValue)}
  

未捕获的TypeError:无法读取未定义

的属性'SomeValue'

非常感谢你在这个相当基本的问题上的理解。

export default class AwsReadFunction extends React.Component {

  constructor(){
    super();
    this.state={
      main: {},
      info: {},
      cows: {}
   };
  } //constructor END

  componentDidMount() {
    var docClient = new AWS.DynamoDB.DocumentClient()
    var table = "Movies";
    var year = 1944;
    var title = "Lifeboat";
    var params = {
      TableName: table,
      Key:{
        "year": year,
        "title": title
      }
    };

    docClient.get(params, (err, data) => {
      if(err){
        console.log(JSON.stringify(err));
      } else {
        var ca = Object.assign({}, data.Item.info.cows);
        this.setState({
          main: data.Item,
          info: null,
          cows: ca
        });
      }
    });

  render(){
    return (
      <div>
        <List main={this.state.main} cows={this.state.cows} />
      </div>
    )
  }
}
export default class List extends React.Component {
  render(){
    return (
      <div>
      List cows-fish: {this.props.cows.fish} <br />
      </div>
    )
  }
}

1 个答案:

答案 0 :(得分:0)

我认为代码背后的逻辑没有任何问题。如果我打赌钱,我猜这是一个错字。这些是我注意到的一些不一致之处:

  • 在您的示例对象中,Child有一个大写C,而在错误消息中它是小写的

  • AwsReadFunction方法声明之前,您似乎错过render中的结束大括号。

  • 您在少数地方使用cow,然后在其他地方使用cows

这显然只是猜测,但仔细检查也不会有害:)