2017-08-09 13 views
0

おはようございます(あなたの質問に申し訳ありません)!コンポーネント内のアクションからデータにアクセスする| Redux

私は自分のAPIから取得しているユーザーの名前を表示するためにnavbarを取得したいと考えています。私のコンソールではnameというキーでuser objectが表示されています。

enter image description here

だから私は、データへのアクセスを取得するためのベストプラクティス何だろうか? ところで、Navbarの抜粋があります。

class MainNavbar extends Component { 
    logout(e) { 
    e.preventDefault() 
    this.props.logout() 
    } 
    render() { 
    return (
     <Navbar inverse collapseOnSelect> 
     <Navbar.Header> 
      <Navbar.Brand> 
      <div> 
       <img id="logo" alt="Qlocx Logo" src={qlocx} /> 
      </div> 
      </Navbar.Brand> 
      <Navbar.Toggle /> 

と下部に:この悪いとnooby質問を読み取るための

MainNavbar.propTypes = { 
    logout: React.PropTypes.func.isRequired 
    // I guess I need to do something here 
} 

function mapStateToProps(state) { 
    return { 
    auth: state.auth 
    // And here as well, but what? :O 
    } 
} 

export default connect(mapStateToProps, { logout })(MainNavbar) 

おかげで多くのことを。私が得ることができるすべての助けに感謝します!

ありがとうございます!コンポーネントの小道具にReduxの状態からユーザ名をマップするために

+1

@AndyRay。確かに、回答を受け入れないことは悪いです(将来の読者のためのチェックポイントとして役立つ回答を受け入れてください)が、それはあなたのアカウントが何を意味するものであれ「閉鎖」されることはありません。 – Li357

答えて

0

、あなたがする必要がありますpropTypesに追加します

MainNavbar.propTypes = { 
    logout: React.PropTypes.func.isRequired, 
    name: React.PropTypes.string 
} 

還元状態から新しいプロップをマップします。 あなたは条件付きでコンポーネントに名前が表示され、これは正しく状態からマッピングし

function mapStateToProps(state) { 
    return { 
    auth: state.auth 
    name: state.user.name 
    } 
} 

ていることを確認する必要があります。

<Navbar.Header> 
    <Navbar.Brand> 
    <div> 
     <img id="logo" alt="Qlocx Logo" src={qlocx} /> 
    </div> 
    </Navbar.Brand> 
    {this.props.name ? this.props.name : null} 
    <Navbar.Toggle /> 
+0

はい、OPはレビュックスストア全体を投稿しませんでした。これは、「これはあなたの状態からマップが正しくマップされていることを確認する必要があります」 – DustyKeyboard

+0

返信いただきありがとうございます!私はあなたの名前がbtw好きですが、それはトリックをしなかった! : –

+0

こんにちは@Martinあなたのreduxストアのユーザー名へのパスはありますか?また、コンポーネントの 'render()'メソッド内でプロップにアクセスしていますか? – DustyKeyboard

関連する問題