0
在下面的組件中設置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>
);
}
}
我希望看到所有列表項,但沒有在HTML(僅「listItems中的」串),在控制檯中沒有錯誤。我如何修復和調試它?使用「調試器」關鍵字沒有顯示任何可觀察的。
「@Inject(‘商店’)」我看到這個東西注入一些地方,我爲什麼需要它?它是依賴注入嗎?我沒有使用注入,但我的代碼仍然有效,所以你什麼時候需要它? – TyForHelpDude
例如,當您在另一個組件內部有組件時,爲了避免一直沿着您的商店向下傳遞,只需使用Provider來傳遞存儲,然後使用Inject將該實例接收到該特定組件上。 – Hosar