2016-10-23 5 views
0

をレンダリングする前に、いくつかのチェックを実行する方法このアイデアを実装するが方法です。チェックがレンダリングよりも真の場合しかし、チェックが偽である場合は、最初にsetStateを実行する必要があります。レンダリング後にのみ行います。が反応:</p> <p>私はいくつかのチェックの前にレンダリングを行いたい:

ありがとうございました。

+0

おそらく 'componentDidMount(){}'の内部にありますか? –

+0

'render(){}'はsetStateの場所ではありません。コンポーネントのライフサイクルメソッドで状態を処理する必要があります:https://facebook.github.io/react/docs/react-component.html – kouak

+0

この質問をしました。私のcromeは、レンダリングで 'setState'を使うのを間違えています。 –

答えて

1

私はcomponentWillMount()は文字通りあなたが何をしているのですが、それをconstructor()に入れるのが良い場所かもしれないと思います。

class MyComponent extends React.Component { 
    constructor(props) { 
    super(props); 
    if (theCheck() === false) { 
     this.state = { 
     // ... 
     } 
    } 
    } 
} 
+0

スーパーとは?そしてなぜ私たちは** setState **ではなく** state **を使うのですか? –

+2

'super()'は拡張したクラスから元のコンストラクタ関数を呼び出します。この場合、 'React.Component'からコンストラクタを呼び出します。 'setState()'は、Reactに、状態が変更されたためにコンポーネントを再レンダリングする必要があることを伝える方法です。 'this.state'を更新するだけであれば、違いは検出されません。コンポーネントがまだレンダリングされていないので、コンストラクタで 'this.state'を使用すると有効です。 – casr

関連する問題

 関連する問題