我正在研究ReactJS應用程序,其中有3個組件,Sidebar
,Dashboard
和Widget
。從第三個組件添加組件到其他組件
Sidebar
,Dashboard
在主應用程序容器
...
class App extends React.Component {
render() {
return (
<div>
<Sidebar/>
<Dashboard/>
</div>
);
}
};
React.render(<App/>, document.getElementById('app'));
Sidebar
內呈現包含項目的列表,並且當點擊其中的一個我要添加(追加)到Dashboard
一個Widget
組件。
的Dashboard
成分基本上是空的
...
class Dashboard extends React.Component {
render() {
return (
<div id="dashboard" className="dashboard">
</div>
);
}
};
而且Sidebar
有項目
...
addWidget (widget) {
// What does I do here?
}
render() {
return (
<div className="sidebar">
<nav className="nav">
<ul>
{this.state.items.map((item) => (
<li key={item.id}><span onClick={ this.addWidget.bind(this, item.name) }>{item.name}</span></li>
))}
</ul>
</nav>
</div>
);
}
};
哪些選項我必須追加Widget
點擊項目時的名單?
感謝
謝謝。這就說得通了。我試試看,看看我到底在哪裏。 – macsig
它工作得很好。但現在我怎麼告訴從應用程序到邊欄再次顯示小部件被刪除時李。我繼續前進,並在控件顯示板上隱藏了li。謝謝你的幫助。 – macsig
如果您需要將該信息發回側邊欄,則可能無法正確構建您的應用。如果您的邊欄和儀表板都需要訪問這些小部件,但它們是彼此的兄弟,則這些小部件不應包含在一個組件或另一個組件中。小部件應該處於更高的級別,以便它們可以被這兩個組件訪問。這可能是App組件,也可能是Flux-ish商店。無論哪種方式,您都可能想重新考慮小部件所在的位置。 (試圖按照你現在的方式來做,可能會導致循環依賴問題。) – GJK