在model文件中
import { articleDetail } from '../../service/api';
export default {
namespace: 'article',
state: {
detail: null
},
reducers: {
saveDetail(state, { payload }) {
return {
...state,
detail: payload
};
}
},
effects: {
*articleDetail({ payload: threadId }, { call, put }) {
const res = yield call(articleDetail, threadId);
if (res.code === 200) {
yield put({
type: 'saveDetail',
payload: res.data
});
}
},
}
}
在组件中
import React from 'react';
import { connect } from 'dva';
function ArticleDetail({ match, dispatch }) {
dispatch({
type: 'article/articleDetail',
payload: match.params.id
});
return (
<div>detail/{match.params.id}</div>
);
}
export default connect(({ article }) => ({ article }))(ArticleDetail);
在无状态组件中怎么正确获取请求啊
你不能在stateless中直接dispatch一个effect.
注释掉的部分不能那么写。
如果想在页面第一次进入加载,请写在
subscriptions
中,或者写在componentDidMount()
方法中