1
私のリアクションWebアプリケーションには、ページコンポーネントがあります。ページコンポーネントは、子コンポーネントの非同期呼び出しを行います。今私はすべてのページでこれをする必要がありますすべてのコンポーネントにコンポーネントを読み込む
export default class Page extends React.Component {
constructor(props) {
super(props);
this.state = {
loading: true
}
}
componentWillMount = async() => {
// ... do calls
this.setState({
loading: false
})
}
render() {
if (this.state.loading) {
return <Loading/>
} else {
return (
// Some other components that needs the information from the calls
)
}
}
}
定型文を少なくする方法はありますか?私は反応がある高次コンポーネントを見ていました。おそらく、呼び出される必要のある機能と、機能の後にレンダリングされるコンポーネントの機能を持つコンポーネントだと思っていました。
const loader = (calls) => (WrappedComponent) => {
return class Loader extends React.Component {
constructor (props) {
super(props);
this.state = {
loading: true
}
}
componentWillMount =() => {
// execute calls function
};
render() {
return this.state.loading ? <Loading/> : <WrappedComponent {... this.props }/>
}
}
};
export default loader;
しかし、私はローダー関数に呼び出し関数を渡す方法を考え出していません。
ありがとう、私はそれを試みます。 HOCはとても簡単だとは思わなかった。 – oscarteg