Sha*_*ews 4 reactjs redux redux-form redux-saga
我有一个传奇,发布到Web服务并返回新的销售订单编号以进行陈述。效果很好,看起来像这样。
//New SALES NUMBER SAGA
function getNewSalesNumber(salesRepId, typeId) {
const url = `${baseUrl}/api/SalesOrder/${salesRepId}?typeId=${typeId}`;
console.log(url);
return axios.post(url);
}
function* callGetNewSalesNumber({salesRepId, typeId, resolve, reject}) {
const result = yield call(getNewSalesNumber, salesRepId, typeId)
if (result.data) {
yield put({type: "NEWSALESNUMBER_FETCHED", result});
// yield call(resolve);
} else {
// yield call(reject);
}
}
function* getNewSalesNumberSaga() {
yield* takeEvery("FETCH_NEWSALESNUMBER", callGetNewSalesNumber);
}
Run Code Online (Sandbox Code Playgroud)
减速器看起来像这样。
function newSalesNumber(state = {}, action) {
switch(action.type) {
case 'NEWSALESNUMBER_FETCHED':
return state
.set("orderHeader.orderId", action.result);
default:
return state;
}
}
export default newSalesNumber;
Run Code Online (Sandbox Code Playgroud)
我试图弄清楚将该值返回到newSalesNumber(现在处于状态)到Field的选项。
如果我是在表单组件中执行此操作,则将使用类似...
this.props.dispatch(change('mainForm', 'orderNumber', "testNumber"));
Run Code Online (Sandbox Code Playgroud)
收到数据后,是否可以从saga内执行此操作?>我可以从连接的表单外部(在Saga中)调用dispatch(change)吗?
您可以像这样从sagas直接进行操作(我们在项目中正在使用此功能)
yield put(change('form_name', 'property_name', value_for_the_property))
Run Code Online (Sandbox Code Playgroud)
或者,您可以通过化简器返回数据,并在容器级别使用它来更新您的redux表单。
| 归档时间: |
|
| 查看次数: |
1369 次 |
| 最近记录: |