0
我想了解REDX传奇是如何工作的,实现一个简单的例子(一个按钮,当点击从API获取用户,然后减速器将此用户添加到商店)与反应,还原和反应 - 还原。如何使用REDX和react-redux的REDX传奇
这里是我的传奇(与console.logs用于调试):
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))
}
不幸的是,当我点击 “获取用户” 按钮,没有任何反应:
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 });
在这里,整个回购: link to repo on GitHub
这是真的如果我点击获取用户按钮我可以console.log点击动作,但它似乎像getUser actionCreator没有被派遣,我不明白我失踪,因为在使用REDX传奇之前,我只是使用反应,redux,react-redux,一切都很好 – Simon
你提供的回购表明与redux-saga无关的问题。您的代码缺少上面指出的功能。 – MadNat
我明白这是缺少的功能,但我仍然没有得到什么缺少触发'getUser'。你能更具体一些,并尝试解释吗? – Simon