问题1:在dva中models中调用state中的函数
namespace: 'DataDictionaryModel',
state:{
currentDictId:0,
},
有如上的一个model,我需要在effets的某一个函数中调用currentDictId写法如下
* fetchItem({payload}, {call, put, select})
{
const dictId = yield select(state => state.DataDictionaryModel.currentDictId);
},
使用state => state.DataDictionaryModel.currentDictId
我们可以调用多个model中的值,只要这个model存在
问题2:在dva中使用回调函数
dispatch({
type: 'TestCaseExecuteModel/fetchCaseDetail',
payload: {
testCaseId: currentTestCaseId,
},
callback: (response) => {
this.setState({
pageHeaderTitle: `执行[${response.testCaseName}]测试用例`,
})
}
});
注意以上的callback函数,当TestCaseExecuteModel/fetchCaseDetail函数执行完成后,获取到api数据后,我们可以通过回调在页面中执行更多的操作 在对应的model中我们这样实现回调
*fetchCaseDetail({payload, callback}, {call, put})
{
const reponse = yield call(TestCaseService.getCaseDetail, payload.testCaseId);
if (callback && typeof callback === 'function') {
callback(reponse.data)
}
yield put({
type: 'save',
payload: {
CaseDetail: reponse.data
}
})
},
其中
if (callback && typeof callback === 'function') {
callback(reponse.data)
}
就是获取到数据之后将数据回调。
问题3:在antd中实现表格隔行渲染不同的颜色
rowClassName = {(record, index)=>{
let className = 'light-row';
if (index % 2 === 1) className = 'dark-row';
return className;
}
}