Подсчет массива obsrv в компоненте ниже;реагируют на получение наблюдаемых значений в компоненте
class AnnouncementState {
@observable categories =[];
constructor(){
this.getAnnouncementCategory();
}
getAnnouncementCategory() {
fetch(`..`)
.then((response) => {
return response.json();
})
.then((response) => {
this.categories = response.value.map((item , i)=>{ return {Id:item.Id, Title:item.Title} });
}, (error) => {
});
}
}
Я проверил полученные значения в порядке. и я стараюсь установить его в компоненте и сделать его ниже;
@observer
class AnnouncementComponent extends React.Component {
categories = [];
componentWillMount(){
debugger
this.categories=this.props.announcement.categories;
}
render() {
const listItems = this.categories.map((item) => {
return (<li>...</li>)
});
return (
<div id="announcements-tab">
List Items:
<ul className="nav nav-tabs">
{listItems}
</ul>
</div>
);
}
}
Я ожидал увидеть все пункты списка, но нет (только «ListItems» строка) в HTML, нет ошибки в консоли. как я могу его исправить и отладить? использование ключевого слова «отладчик» ничего не показывает для наблюдаемого.
«@inject ('store')« Я вижу, что это вставляет вещи в некоторые места, зачем мне это нужно? это для инъекций зависимостей? Я не использовал инъекцию, но мой код все еще работает, когда вам это нужно? – TyForHelpDude
Например, если у вас есть компонент внутри другого компонента, чтобы избежать прохода по всему вашему магазину, вы просто используете Провайдер для передачи хранилища и Inject, чтобы взять экземпляр для этого конкретного компонента. – Hosar