使用Meteor + React和」this.props.thing.source「是mongodb _id的字符串。meteor + react「Uncaught TypeError:無法讀取未定義的屬性'數據'
「findOne()」函數是Meteor的函數之一。正如你所看到的,當我傳遞ID本身的字符串時它工作正常,但是當傳遞變量時我得到一個未定義的錯誤,即使該變量渲染出相同的字符串。
在此代碼:
Thing = React.createClass({
propTypes: {
thing: React.PropTypes.object.isRequired
},
render() {
return (
<ul>
<li>Display: {Things.findOne(this.props.thing.source).data}</li>
<li>Display: {Things.findOne("emq6M4WbJeRvkA6Q3").data}</li>
<li>Source: {this.props.thing.source}</li>
</ul>
);
}
});
這不起作用:
此作品:
而這個正確呈現 「emq6M4WbJeRvkA6Q3」:
的錯誤我得到:
「遺漏的類型錯誤:未定義無法讀取屬性‘數據’」
可能是因爲'this.props。 thing.source'不等於該散列碼,這意味着'findOne'返回'undefined',所以訪問'data'屬性會引發錯誤。 – royhowie
只是想出來了,它涉及到不等於字符串...我發現並不是所有的東西都有.source的值,所以在一些它是未定義的...現在即時檢查是否有字符串價值第一,然後才執行查找。 – markjspivey
這正是我的意思。當你使用硬編碼的字符串時,'findOne'返回一個帶有'data'屬性的對象。但是,當你使用這個變量時,'findOne'返回'undefined',因此出錯。 – royhowie