我可以 return 使用 redux-thunk 从 action creator 获取价值吗?
Can I return value from action creator using redux-thunk?
我见过很多异步动作创建者的例子,但他们都做了某种获取和推送数据到 redux 存储的事情,return 什么也没做。我需要另一个看起来像这样的逻辑:
const createUserAction = (user) => {
firestore().collection('users').add(user)
.then(result => {
dispatch({type: 'SET_USER', payload: {...user, id: result.id}})
})
}
我需要从 createUserAction
return result.id
导航到按用户 ID 显示用户的页面。在我的想象中它应该像
createUserAction({name: John}).then(id => navigation.navigate('UserDetailPage', {userId: id}))
我不知道如何实现它,如果有人能提供帮助,我会很高兴
动作创建者的返回值是 No-Go。我已经使用并认为更好的这种情况的解决方案是在异步操作本身中进行重定向:
// afterCreation = callback function with one argument, the created user
const createUserAction = async (user, afterCreation) => {
const createdUser = await firestore().collection('users').add(user);
dispatch({type: 'SET_USER', payload: {...user, id: createdUser.id}});
afterCreation(createdUser);
};
createUserAction(
{name: John},
// Pass callback to action creator
(user) => navigation.navigate('UserDetailPage', {userId: user.id})
);
我见过很多异步动作创建者的例子,但他们都做了某种获取和推送数据到 redux 存储的事情,return 什么也没做。我需要另一个看起来像这样的逻辑:
const createUserAction = (user) => {
firestore().collection('users').add(user)
.then(result => {
dispatch({type: 'SET_USER', payload: {...user, id: result.id}})
})
}
我需要从 createUserAction
return result.id
导航到按用户 ID 显示用户的页面。在我的想象中它应该像
createUserAction({name: John}).then(id => navigation.navigate('UserDetailPage', {userId: id}))
我不知道如何实现它,如果有人能提供帮助,我会很高兴
动作创建者的返回值是 No-Go。我已经使用并认为更好的这种情况的解决方案是在异步操作本身中进行重定向:
// afterCreation = callback function with one argument, the created user
const createUserAction = async (user, afterCreation) => {
const createdUser = await firestore().collection('users').add(user);
dispatch({type: 'SET_USER', payload: {...user, id: createdUser.id}});
afterCreation(createdUser);
};
createUserAction(
{name: John},
// Pass callback to action creator
(user) => navigation.navigate('UserDetailPage', {userId: user.id})
);