ここで初心者はReduxを学ぼうとしています。 ゴール:クリックしてログイン/ログアウトするボタンを取得し、いずれかの方法でストアを真/偽のステータスとして更新します。REDUX:なぜ店舗が自分のコンポーネントにデータを提供しないのですか?
const store = createStore(myReducer)
私のレデューサーを渡して、私の店を作りました。
これはデフォルトの状態がログアウトしています。ボタンがクリックされると、その逆を返します。
私はこの動作がデバッグを通じて機能することを知っています。
function myReducer(state = { isLoggedIn: false }, action) {
switch (action.type) {
case 'TOGGLE':
return {
isLoggedIn: !state.isLoggedIn
}
default:
return state
}
}
問題はここから始まります - 私はstore.getState()データにアクセスするためにを試してみてくださいとき。
class Main extends React.Component {
render() {
return (
<div>
<h1>Login Status: { state.isLoggedIn }</h1>
<button onClick={this.props.login}>Login</button>
</div>
)
}
}
const render =() => {
ReactDOM.render(<Main status={store.getState().isLoggedIn} login={() => store.dispatch({ type: 'TOGGLE' })}/>, document.getElementById('root'));
}
store.subscribe(render);
render();
私はstore.getState()isLoggedIn & store.getState()& this.props.statusを試してみましたが、その後、メインコンポーネントにstore.getState()isLoggedInを割り当てました - 。。しかし、何も動作。
どこに間違っているのか誰にでも教えてもらえますか?
ありがとう@MarkChandler - 私はDan Abramovのチュートリアルに従いました。彼のtodos(&todo todo)リストはまだmapStateToPropsを使用していないようですが、そのトグル段階ですか? おそらく私は自分自身よりも先に進んでいますが、connect()と上記の必要はdivに 'true'または 'false'のログインを表示するだけの場合に必要ですか? – NewbieAid
@NewbieAid:作成したファイルからストアをインポートし、 'store.getState()'を呼び出すなど、他の方法で状態にアクセスできますが、これは慣用的なやり方です。私は彼が後で 'mapStateToProps'に入ることを知っているので、あなたは自分よりも先に進んでいると思います。 Danはまた、かなり高度なトピックに入るegghead.ioのReduxに関する2つの無料ビデオウォークスルーを提供しています。あなたがビデオからうまく学ぶなら、私は間違いなくそれらをお勧めします! –
ええ、私は今、Eggheadのものにいるよ、ありがとう。ログインまたはログアウトするトグルボタン(true/false)を持っていて、それを表示するというアイデアは*とてもシンプルなので、ちょっとしたことです。 &私はそれをコンソールに表示することができます...ええ、私は5時間の画面に対して頭を打っている!ハハ。 – NewbieAid