访问通过ReactNative组件中的props传递的对象

时间:2018-03-03 21:46:34

标签: javascript reactjs react-native jsx

我对ReactNative很新,而且我的javascript也不是很好,所以请原谅我,如果这是愚蠢的(我已经搜遍了谷歌和stackoverflow,并且似乎找不到我的直接答案问题):

我有一个我已定义的简单组件:

export default class SPlanet extends React.Component {
  constructor(props) {
    super(props)
  }

  render() {

    const planet = this.props ? this.props.planet : null;
    console.log(planet);

    return (
      <View>
        <Text>{this.props.planet}</Text>
      </View>
    );
  }
}

它在app.js中调用如:

<SPlanet planet={planetDB.Atraxia}/>

并且该对象的定义如下:

const planetDB = {
  Atraxia : {
    type : "gas",
    name : "Atraxia",
    economy : 10,
    resources : 3,
    loyalty : "70%",
    side : "enemy"
  },
}

现在这基本上有效(它不会引发任何错误)。它只是将对象传递给控制台日志,但不会在文本中显示任何内容。

但是,如果我只想显示名字呢?我试过了

  console.log(planet.name);

但会抛出错误:&#34; undefined不是对象&#34;

我也尝试将其作为一个简单的数组发送,然后将其称为

  console.log(planet[0]);

但是我得到了同样的错误。

我确信这是一个愚蠢的错误,我错过了语言基础的东西,但我很难过。帮助

1 个答案:

答案 0 :(得分:0)

在玩完它之后,我发现了这个:

{{1}}

通过在行星名称周围添加引号,突然现在它起作用了。我不知道为什么。如果somone可以向我解释原因,我会将它们标记为答案。