Я включу один важный пример использования указателя. Когда вы храните некоторый объект в базовом классе, но он может быть полиморфным.
Class Base1 {
};
Class Derived1 : public Base1 {
};
Class Base2 {
Base *bObj;
virtual void createMemerObects() = 0;
};
Class Derived2 {
virtual void createMemerObects() {
bObj = new Derived1();
}
};
Итак, в этом случае вы не можете объявить bObj как прямой объект, у вас должен быть указатель.
Вы не можете получить доступ к data
прямо так. Если вы задали свойство state с именем data
, вам нужно получить к нему доступ, используя this.state.data
в функции render()
.
this.state.data.map(item => {
...
});
Еще одна проблема, с которой вы можете столкнуться, - это что функция componentDidMount
запускается после первого рендеринга компонента (см. React componentDidMount () ), что означает, что вы будете получать доступ к данным в render()
до его создания и использовать map
on неопределенное значение.
Я предлагаю вам либо использовать componentWillMount()
, либо создать свойство данных в constructor
, например:
constructor(props) {
super(props);
this.state = { data: [] };
}
Я думаю, что componentDidMount
не срабатывает из-за
data.map
, и вы устанавливаете данные в this.state.data
{this.state.data && data.map(..)}
должно быть уместным в вашем случае. Итак, почему метод не стреляет? Вероятно, из-за того, что выполнение является последовательным, оно останавливается, когда оно встречает ошибку в вашем заявлении data.map
. Исправьте эти ошибки, и я думаю, что вам будет хорошо.
data
не имеет значения в момент выполнения этого оператора. Или ваш data
не имеет тип array
. контрольная точка 2 @ankur
– Aseem Upadhyay
13 July 2018 в 08:39
map
может использоваться только для массива. – Pierre C. 13 July 2018 в 08:38