2017-08-31 11 views
0

私は例えば、別のプロパティに依存コンポーネントの状態の性質にアプローチすべきか疑問:(同じクラスの)別のプロパティに応じて、どのように状態プロパティについて調べますか?

class Sample extends Component { 
    constructor(props) { 
    super(props); 
    this.state = { 
     mainProperty: 1, 
     something: { 
     dependingOnMainProperty: `foo${this.state.mainProperty}bar` 
     } 
    } 
    } 
} 

基本的に、私は私がsetStateを通じてmainPropertyを変更するとdependingOnMainPropertyが自動的に更新されるようにしたいと思います。そのための関数を書くべきか、それとも他の解決策がありますか?

+1

[他の状態に基づいて状態を有するReact.js]の可能な重複(https://stackoverflow.com/questions/25145857/react-js-having-state-based-on -other-state) –

+0

状態は単純なオブジェクトです。それは観測も計算もされていません。単に平凡な価値。グローバルな状態管理のために 'mobx 'を使うことをお勧めします。それは反応と素晴らしい仕事をし、値を観測し、他の値に基づいて値を計算する能力を持っています。 – webdeb

答えて

0

ゲッターとセッターは次のようにすることができます。

class Component { 
 
    constructor(...props){ 
 
    props.forEach(prop => this[prop] = "whatever"); 
 
    } 
 
} 
 

 
class Sample extends Component { 
 
    constructor(...props) { 
 
    super(...props); 
 
    this.state = { 
 
     something: { 
 
     __mp__: "tester", 
 
     dependingOnMainProperty: `foo${this.mainProperty}bar`, 
 
     get mainProperty(){ 
 
      return this.__mp__; 
 
     }, 
 
     set mainProperty(v){ 
 
      this.__mp__ = v; 
 
      this.dependingOnMainProperty = `foo ${v} bar`; 
 
     } 
 
     } 
 
    }; 
 
    } 
 
} 
 

 
var s = new Sample("a", "b"); 
 
s.state.something.mainProperty = "hello"; 
 
console.log(s.state.something.dependingOnMainProperty);

関連する問題