【发布时间】:2018-05-19 15:11:49
【问题描述】:
尝试使用组件的 <button> 中的道具来调度已为异步进程设置的 redux-thunk 函数,但我无法完全了解如何同时使用道具和函数(正在连接到通过 react-redux connect mapDispatchToProps 中的组件,但我就是不知道如何同时调用道具和函数。
function loadData(dispatch, medium) {
console.log(dispatch)
return dispatch({type: 'LOADING_COMPONENT'})
return axios.get(`/professionals/${medium}`)
.then(res => res.json())
.then(
data => dispatch({ type: 'LOAD_SOME_DATA_SUCCESS', data }),
err => dispatch({ type: 'LOAD_SOME_DATA_FAILURE', err })
);
}
const mapDispatchToProps = (dispatch) => {
return {
LogInClick : () => dispatch(loadData()),
}
}
const LoginButtons = ({props, LogInClick}) => (
<button onClick={() => LogInClick(props.medium)} type="button">{props.buttonName}</button>
)
const LoginConnect = connect(null, mapDispatchToProps)(LoginButtons)
然后我导出它并尝试调用它,以便它可以在渲染文件中重复使用,如
<LoginConnect medium='suhhhh' buttonName='To log in to suhhh'/>
【问题讨论】:
-
我不确定这是否会导致您的问题,但似乎您总是在您的
loadData()函数中返回dispatch()的结果,这意味着 axios 调用永远不会被调用。
标签: reactjs redux react-redux redux-thunk react-props