我在同一页面上有两个传奇人物,但结果只有一个传奇人物。 另一个传奇没有执行,我看不到结果。
AdminFolder
dashboard.js
const mapStateToProps=state=>{
console.log(state)
return{
dataSales:state.salesDataReducer,
mostBrought:state.mostBroughtReducer
}
};
const mapDispatchToProps = {
getSales:getSales,
getMostBrought:getMostBrought
};
rootSaga / rootSaga.js
import actionWatcherSalesData from '../adminDashboard/salesDataSaga';
import actionWatcherMostBrought from '../adminDashboard/mostBroughtSaga';
import {all,call} from 'redux-saga/effects';
export default function *rootSaga(){
yield all([
call( actionWatcherSalesData), //works
call(actionWatcherMostBrought)// this saga doesn't call up no data found
]);
}
export default function *rootSaga(){
yield all([
fork( actionWatcherSalesData),
fork(actionWatcherMostBrought)//doesnt work
]);
}
saga1.js
yield takeLatest(GET_SALES_DATA,getSales)
saga2.js
yield takeLatest(GET_MOST_BROUGHT_DATA,getMostBrought);
是引起问题的TakeLatest吗?
1)由于相同的页面数据,两个调用都必须异步发生,但是第二个saga调用没有被调用? 2)我怀疑对于其他页面上的应用程序,我只有一个按钮才能单击,它必须调用saga,应该在此处包含它吗?
在此呼叫中,前叉都无法正常工作。请让我知道我要去哪里了。我错过了什么吗? 任何帮助表示赞赏。
答案 0 :(得分:0)
我的进口错了
以下内容就像一个魅力:)
public static boolean checkOnNonNull(Context context, Class<?> clazz) {
Intent service = new Intent(context, clazz);
ResolveInfo rInfo = context.getPackageManager().resolveService(service, PackageManager.GET_SHARED_LIBRARY_FILES);
ServiceInfo sInfo = rInfo != null ? rInfo.serviceInfo : null;
if (sInfo == null) {
Timber.e("Unable to start service " + service + ": not found");
return false;
}
return true;
}
if (!checkOnNonNull(context, MyServiceClass.class)) {
ComponentName component = new ComponentName(getPackageName(), MyServiceClass.class.getName());
getPackageManager().setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0);
}