【发布时间】:2016-12-19 03:07:55
【问题描述】:
我有以下搜索组件
import React, { Component } from 'react';
import { Field, reduxForm } from 'redux-form';
import { search } from '../../actions/actions'
class Search extends Component {
render() {
const {handleSubmit, "fields":{query}} = this.props;
return (
<div>
<form onSubmit={handleSubmit(search)}>
<Field className='searchInput' name="query" component="input" type="text" placeholder="Enter course name"/>
<button className='searchSubmit' type='submit' >Search</button>
</form>
</div>
);
}
}
export default reduxForm({
"form":"searchForm",
"fields":["query"]
}, null, {search})(Search);
我的搜索操作是这样的
search : function(query){
var data = {
ep:"EP_SEARCH",
payload:{
query: query.query
}
}
getAsynch(data).then(function(result){
return {type: GET_DATA, payload:result};
})
}
我从端点得到响应,但我需要以某种方式调度操作。
我试过而不是
getAsynch(data).then(function(result){
return {type: GET_DATA, payload:result};
})
这个
return function(dispatch){
getAsynch(data).then(function(result){
dispatch({type: GET_DATA, payload:result});
})
}
但它会抛出一个未定义调度的错误。可能是因为我没有在组件中的任何地方传递它。
【问题讨论】:
-
你使用
redux-thunk吗?getAsynch这里是什么? -
是的,我正在使用 redux-thunk。我回答了我自己的问题,但我不确定魔法是如何工作的。
标签: reactjs redux react-redux redux-form