將複雜對象或類繼承到每個ReactJS-Component的最佳方式是什麼?繼承nodeJs請求的推薦方法ReactJS中的對象
正如他們的文檔中所述,不建議使用上下文,我猜測使用prop也不是最好的解決方案。
這是我們的情況:
編輯:也許一個更好的例子是,當我們試圖繼承路由器請求對象爲孩子SSR的20級方面的原因
我們使用的是路由器它適用於客戶端和SSR。對於呈現的每條路線,我們需要在客戶端和服務器上生成一個生成的類來處理。所以,一個解決方案應該是這樣的:
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.myAwesomeObject = new AwesomeClass({/* some settings */});
}
getChildContext() {
let { myAwesomeObject } = this;
return {
myAwesomeObject
};
}
render(){
return (
<span><ComponentLevel1 /></span>
);
}
}
const ComponentLevel1 =() => {
return (
<div>
<ComponentLevel2 />
</div>
);
};
const ComponentLevel2 =() => {
return (
<div>
<ComponentLevel3 />
</div>
);
};
......
const ComponentLevel20 = (props) => {
content = this.context.myAwesomeObject.doSomeThingWithProps(props);
return (
<div>
{content}
</div>
);
};
在這個例子中,我現在可以使用中的每個組件的awesomeObject我將呈現,但不建議通過ReactJS上下文: https://facebook.github.io/react/docs/context.html
所以我的問題現在是:什麼是最好的推薦方式繼承這樣的類到所有組件?
我知道:在客戶端這不是問題,因爲我可以創建對象一次,並在客戶端全局但在服務器(SSR)上使用它,我也需要訪問創建的類。每當我需要在另一個組件中重新創建對象似乎不是最好的解決方案 - 也不要將此類添加到任何組件作爲屬性 - 對嗎?
編輯 我已編輯的代碼片段,以表明它可能有我孩子的20級需要訪問該實例的情況下。有了上下文,它可以像我的例子那樣工作,但ReactJS表示不推薦。所以另一種解決方案是將該類添加到我的孩子的屬性中 - 20個關卡 - 但是這是真正解決此問題的最佳推薦解決方案嗎?
所以當我在20級需要這個類的組件時,我必須爲每個孩子添加20次類,直到我達到需要該類的那個類爲止?或者有另一種解決方法嗎? – TJR