错误:
操作必须是普通对象。实际类型为:'string'。您可能需要在商店设置中添加中间件来处理其他值的调度,例如'redux-thunk'来处理调度函数。
下面的代码是客户端,我在其中将选定的用户id分派给操作。
const friendHandle = (e) => {
e.preventDefault()
setSwitch(false)
setFriend(!friend)
dispatch(friendUser(id))//id is the id from params of selected users
setFetchAgain(!fetchAgain)
}
useEffect(() => {
if(currentUser){
currentUser?.friends?.map(friends => {
console.log(friends._id)
console.log(currentProfile._id)
if(friends._id===currentProfile._id){
return setFriend(true)
}
})
}else{
return setFriend(false)
}
},[currentUser,currentProfile])
下面是上面代码的actions.js
export const friendUser = (id) => async (dispatch) => {
try {
await api.friendUser(id)
dispatch(id)
} catch (error) {
console.log(error)
}
}
我正在尝试传递选定用户的ID,但收到错误。我是React的新手,因此无法理解。
1条答案
按热度按时间mfpqipee1#
从操作中删除
dispatch(id)
,可能是一些复制\粘贴或合并错误