reducer只是一个纯函数。它没有状态,因此将reducer作为参数传递给另一个函数无法实现您想要的结果。我不知道你说的";上下文文件";或者
简而言之,我试图将一个reducer传递到一个上下文文件并拥有它,这样,如果reducer的状态更新了,我就可以在上下文文件中查看新状态。
这是我的减速器:
function StillUploadReducer(state = true, action){
switch (action.type){
case 'stillUpload':
return action.payloadData
default:
return state
}
}
以下是我如何将其传递到firebase上下文文件:
const addData = await firebase.addExercise(
Data,
props.StillUploadReducer
);
在上下文文件中,我做了一个值的console.log,并获得了传入的原始值。这方面的主要问题是,我希望用户能够在等待上传视频时更改reducer的状态,这样,如果状态发生了更改,就会在上下文文件中反映出来。用户使用以下操作更改减速器:
const StillUpload = (dataToPass) => {
return{
type: 'stillUpload',
payloadData: dataToPass,
}
}
我已经在控制台上记录了上下文文件外reducer的值,我可以看到它正在更新,我只是不知道如何看到上下文文件中反映的更改。有人有什么想法吗?Thx提前了。
firebase.addExercise
的作用,但您很可能应该使用useSelector
挂钩,它正是为组件设计的,以便在状态的相应部分每次更改时重新发送。您也不应该再使用mapStateToProps
,它是用于遗留类组件的遗留API。