Im, использующий Meteor + React и« this.props.thing.source »- это строка для mongodb _id.Метеор + реагировать «Некопать TypeError: Невозможно прочитать данные свойства« неопределенного »
Функция «findOne()» является одной из функций Метеор. Как вы можете видеть, он отлично работает, когда я передаю строку самого идентификатора, но я получаю неопределенную ошибку при передаче в переменной, хотя эта переменная отображает эту же строку.
В этом коде:
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":
Индикатор ошибки я получаю:
"Uncaught TypeError: не удается прочитать свойство 'данные' неопределенных"
Вероятно потому, что 'this.props. thing.source' не равно этому хэш-коду, то есть 'findOne' возвращает' undefined', поэтому доступ к свойству 'data' вызывает ошибку. – royhowie
просто понял, и это связано с тем, что вы не равны строке ... я узнал, что не все вещи имеют значение для .source, поэтому некоторые из них были не определены ... теперь я проверяю, есть ли строка сначала, а затем выполняет поиск. – markjspivey
Вот что я имел в виду. Когда вы использовали строчную кодированную строку, 'findOne' возвратил объект с свойством' data'. Однако, когда вы использовали переменную, 'findOne' возвращал' undefined', следовательно, ошибку. – royhowie