複数のCxコンポーネントを1つの機能コンポーネントにまとめて、複数のパラメータをJSX属性として受け入れ、独自のネストされた(子)コンポーネントを持つことができれば、本当に役に立ちます。カスタムCxのコンポーネントを作成する場合CxJSで機能コンポーネントを作成する方法は?
<LoadingOverlay loading={bind('$page.loading')} >
<Grid />
</LoadingOverlay/>
、通常、我々は、基本コンポーネントの一部を拡張し、プロセスが複雑に特定の事前定義された方法を実装するクラスを作成する必要があります。ここ
はLoadingOverlay
の一つの可能な実装である:上記の例で
class LoadingOverlay extends PureContainer {
declareData() {
super.declareData(...arguments, {
loading: undefined
});
}
render (context, instance, key) {
let {data} = instance;
return <div key={key} className="cxb-loading-overlay-container">
{this.renderChildren(context, instance)}
{data.loading && <div className="cxe-loading-overlay">
<div className="cxe-loading-indicator">
{Icon.render('loading', {
style: {
width: '24px',
height: '24px',
position: 'relative',
top: '6px'
}
})
}
Loading...
</div>
</div>}
</div>;
}
}
、LoadingOverlay
がPureContainer
から継承しdeclareData
とrender
メソッドを実装しなければなりませんでした。 そして、私はこのような者のステートレス機能性成分を反応させることsimmilar何か、使用できるようにしたいと思います:
const LoadingOverlay = (props) => {
return <div className="cxb-loading-overlay-container">
{props.children}
{data.loading && <div className="cxe-loading-overlay">
<div className="cxe-loading-indicator">
{Icon.render('loading', {
style: {
width: '24px',
height: '24px',
position: 'relative',
top: '6px'
}
})
}
Loading...
</div>
</div>}
</div>;
}
はCxJSに、このことは可能ですか?
これはとても素晴らしいです!どうもありがとう! –