1
私は簡単なajaxローダーを書こうとしています。私は親コンテナ内でprops.childrenのレンダリングを防ぐことができますか?問題は、子どもがレンダリングしたかったことです.Loaderがそれを表示したいかどうかにかかわらず、レンダリングがエラーを起こしているajaxデータに基づいている場合です。反応が子供のレンダリングを防ぐ(応答を待っているajaxローダー)
例:https://jsfiddle.net/j8dvsq39/
例2: エラーカウスのthis.state.data.userを生成するこの例は、AJAXリクエストの前に定義されていません。
ローダー:
import React from 'react'
export default React.createClass({
getDefaultProps() {
return { text: "Loading", loaded: false };
},
render() {
if(this.props.loaded == false)
return <div>{this.props.text}</div>;
else
return <div>{this.props.children}</div>;
}
})
クラスローダ
import React from 'react'
import Loader from '../helpers/Loader';
import {comm} from '../Comm';
export default React.createClass({
getInitialState() {
return {loaded: false, data: null};
},
componentWillMount(){
comm.get("/xxx/xxx", {json: 1}, (back) => {
console.log(back);
this.setState({loaded: true, data: back});
});
},
render(){
return <Loader loaded={this.state.loaded}>{this.state.data.user.name}</Loader>
});
Thxを:あなたは、AJAXの応答を取得していないゴマ、これをチェックしてください。しかし、私は変数をチェックすることができることを知って、私は単にそれをしたくないです。私はクリーンなコードを "データがrecived"したいと思います。私はこのクラスがifsで動作するようにすることができます。私はちょうどそれがローダーでそれらを防ぐことができますか? – rzseattle