タグ付けされた質問 「setstate」


4
React setStateコールバックを使用する場合
反応コンポーネントの状態が変化すると、renderメソッドが呼び出されます。したがって、状態が変化した場合、レンダリングメソッドの本体でアクションを実行できます。次に、setStateコールバックの特定の使用例はありますか?

4
setStateの更新が完了した後で関数を実行できますか?
私はReact JSに非常に慣れていません。setStateの仕組みがよくわかりません。ReactとEasel JSを組み合わせて、ユーザー入力に基づいてグリッドを描画しています。これが私のJSビンです:http : //jsbin.com/zatula/edit?js,output これがコードです: var stage; var Grid = React.createClass({ getInitialState: function() { return { rows: 10, cols: 10 } }, componentDidMount: function () { this.drawGrid(); }, drawGrid: function() { stage = new createjs.Stage("canvas"); var rectangles = []; var rectangle; //Rows for (var x = 0; x < …

13
マウントされていないコンポーネントでReact状態の更新を実行できません
問題 私はReactでアプリケーションを書いていますが、setState(...)後に呼び出される非常に一般的な落とし穴を回避できませんでしたcomponentWillUnmount(...)。 私は自分のコードを注意深く見て、いくつかの保護句を配置しようとしましたが、問題は解決せず、まだ警告を監視しています。 したがって、2つの質問があります。 スタックトレースから、どの特定のコンポーネントとイベントハンドラーまたはライフサイクルフックがルール違反の原因であるかをどのように把握しますか? さて、私のコードはこの落とし穴を念頭に置いて書かれていて、すでにそれを防ごうとしているので、問題自体を修正する方法ですが、いくつかの基礎となるコンポーネントはまだ警告を生成しています。 ブラウザコンソール Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method. in TextLayerInternal (created by Context.Consumer) in TextLayer …

4
Reactは状態更新の順序を保持しますか?
Reactはパフォーマンスの最適化のために、状態の更新を非同期でバッチで実行する可能性があることを知っています。したがって、を呼び出しsetStateた後に更新される状態を信頼することはできません。しかし、あなたはに反応信頼できるのと同じ順序で状態を更新setStateと呼ばれているため 同じコンポーネント? 異なるコンポーネント? 次の例のボタンをクリックすることを検討してください。 1. aがfalse、bがtrueである可能性はありますか? class Container extends React.Component { constructor(props) { super(props); this.state = { a: false, b: false }; } render() { return <Button onClick={this.handleClick}/> } handleClick = () => { this.setState({ a: true }); this.setState({ b: true }); } } 2. aがfalseでbがtrueである可能性はありますか? class SuperContainer extends React.Component …

9
状態を更新しないsetStateを反応させる
だから私はこれを持っています: let total = newDealersDeckTotal.reduce(function(a, b) { return a + b; }, 0); console.log(total, 'tittal'); //outputs correct total setTimeout(() => { this.setState({dealersOverallTotal: total}); }, 10); console.log(this.state.dealersOverallTotal, 'dealersOverallTotal1'); //outputs incorrect total newDealersDeckTotalは単なる数値の配列です。[1, 5, 9]たとえばthis.state.dealersOverallTotal、正しい合計は表示されませんが、表示されますtotalか?これで問題が解決するかどうかを確認するために、タイムアウト遅延を設定しました。明らかなことはありますか、それとももっとコードを投稿する必要がありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.