2017-08-13 8 views
0

他のクラスの状態にアクセスするにはどうしたらいいですか?
この構造は、コメントで述べたように他のクラスの状態へのjsのアクセス

class classname2 extends React.Component { 
 
    ... 
 
    this.state = { statename1: "lala" }; 
 
    ... 
 
}; 
 

 
class classname1 extends React.Component { 
 
    render() { 
 
    return (
 
     {classname2.state.statename1 } 
 
    ); 
 
    } 
 
};

+2

これはアノテーションパターンです。代わりに、ClassName2からClassName1への 'props'を渡してデータにアクセスするべきです。 – styfle

答えて

1

仕事、子供たちへの小道具として状態を渡しません。

class classname2 extends React.Component { 
    this.state = { statename1: "lala" }; 
    render() { 
    return <classname1 statename1={this.state.statename1} /> 
    } 
}; 

class classname1 extends React.Component { 
    render() { 
    return (
     <div>{this.props.statename1}</div> 
    ); 
    } 
}; 
0

ダイレクトアクセスによるコンポーネント間の共有状態は、アンチパターンです。各コンポーネントには独自の状態が必要です。利用可能な状態が世界的に必要な場合は、Reduxをご利用ください。

最初は少し面倒だったかもしれませんが、それは素晴らしいですし、あなたのアプリを適切にテストすることができます。

編集:小道具として状態を渡す

も有効ですが、コンポーネントは親子順にあるときにのみ動作します。 Reduxは、関係が何であってもコンポーネントを更新できるようにします。

関連する問題