2016-11-05 49 views
0

redux-sagaの仕組みを理解しようとしています。単純な例を実装しています(APIからユーザーをフェッチし、店舗)を反応させ、還元し、反応させる。redux-sagaとreduxとreact-reduxの使い方

import React, { PropTypes } from 'react'; 
import CSSModules from 'react-css-modules'; 

import styles from './Button.css'; 

const Button = ({ getUser }) => { 
    function handleClick() { 
    getUser 
    console.log('Clicked'); 
    } 

    return (
    <button 
     type='text' 
     styleName='button' 
     onClick={handleClick} 
    >Get User</button> 
) 
} 


Button.propTypes = { 
    getUser: PropTypes.func 
} 

export default CSSModules(Button, styles, { allowMultiple: true }); 
ここ

全体レポ:たまたま私は、 "ユーザーを取得" ボタンは何もクリックしない残念ながら

import { take, call, put } from 'redux-saga/effects'; 

import { GET_USER, setUser } from './actions/actionCreators'; 

export default function * watchFetchUser() { 
    console.log('Inside saga'); 
    yield take(GET_USER); 
    console.log('Received click'); 
    const URL = 'http://uinames.com/api/?ext'; 
    const user = yield call(fetch, URL); 
    const userToJson = yield user.json(); 
    yield put(setUser(userToJson)) 
} 

:ここ

は、(デバッグのためconsole.logsと)私のサガです link to repo on GitHub

答えて

0

あなたの問題は、サガとは関係ありません。あなたのコードには、reduxとreactの間の「接着剤」がありません。mapStateToPropsmapDispatchToPropsという形で反応します。 App.jsでは、GET_USERアクションをトリガするために必要な小道具なしでButtonコンポーネントを使用していることに注意してください。このredux documentationページをご覧ください。

+0

これは本当ですGET USERボタンをクリックすると、console.logにクリックアクションができますが、getUser actionCreatorはディスパッチされていないようですが、私が使っているものは理解できません。反応し、還元し、反応が還元され、すべてがうまくいった。 – Simon

+0

あなたが提供したレポは、redux-sagaとは何の関係もない問題を示しています。あなたのコードには、上記の関数がありません。 – MadNat

+0

私は機能が不足していることを理解していますが、私はまだ 'getUser'をトリガするために欠けているものを取得しません。もっと具体的に説明して説明できますか? – Simon

関連する問題