cb && 'function' === typeof cb && cb(data) 如何在带有 redux-thunk 的 Action(React-redux) 中工作?
how does cb && 'function' === typeof cb && cb(data) work in the Action(React-redux) with redux-thunk?
我创建了一个模拟承诺作为 delay() 来访问 redux-thunk。
action部分没看懂cb && 'function' === typeof cb && cb(data)
redux-thunk在action中是怎么工作的?
class Actions {
static start() {
return {
type: actionType.CREATE_TODO_DOING
}
}
static ok(data, cb) {
cb && 'function' === typeof cb && cb(data);
return {
type: actionType.CREATE_TODO_SUCCESS,
payload: data
}
}
static fail(data, cb) {
cb && 'function' === typeof cb && cb(data);
return {
type: actionType.CREATE_TODO_FAILURE,
payload: data
}
}
}
export default (data, cb) => {
return (dispatch, getState) => {
dispatch(Actions.start());
delay(0.5).then(() => {
dispatch(Actions.ok(data, cb));
}).catch(error => dispatch(Actions.fail(error || 'Create failed', cb)))
}
}
这是这些的快捷方式
if (cb && 'function' === typeof cb) { // check cb has value + cb is a function or not
cb(data); // call cb function
}
它只是一个回调函数,你想在调用 Actions.ok
函数时调用它,仅此而已
我创建了一个模拟承诺作为 delay() 来访问 redux-thunk。
action部分没看懂cb && 'function' === typeof cb && cb(data)
redux-thunk在action中是怎么工作的?
class Actions {
static start() {
return {
type: actionType.CREATE_TODO_DOING
}
}
static ok(data, cb) {
cb && 'function' === typeof cb && cb(data);
return {
type: actionType.CREATE_TODO_SUCCESS,
payload: data
}
}
static fail(data, cb) {
cb && 'function' === typeof cb && cb(data);
return {
type: actionType.CREATE_TODO_FAILURE,
payload: data
}
}
}
export default (data, cb) => {
return (dispatch, getState) => {
dispatch(Actions.start());
delay(0.5).then(() => {
dispatch(Actions.ok(data, cb));
}).catch(error => dispatch(Actions.fail(error || 'Create failed', cb)))
}
}
这是这些的快捷方式
if (cb && 'function' === typeof cb) { // check cb has value + cb is a function or not
cb(data); // call cb function
}
它只是一个回调函数,你想在调用 Actions.ok
函数时调用它,仅此而已