我的redux状态已更改,但视图不';T

我的redux状态已更改,但视图不';T,redux,react-redux,Redux,React Redux,我正在制作一个名为“你愿意”的游戏, 该游戏允许用户从用户名中选择假登录名 我的比赛一切顺利 但当用户回答问题时,状态会改变,但视图不会重新渲染 我想这是因为变异,但我找不到我的错误,所以这是我的代码 问题.js case ADD_ANSWER: const {qid,answer,authedUser} = action.payload return { ...state,

我正在制作一个名为“你愿意”的游戏, 该游戏允许用户从用户名中选择假登录名

我的比赛一切顺利 但当用户回答问题时,状态会改变,但视图不会重新渲染 我想这是因为变异,但我找不到我的错误,所以这是我的代码

问题.js

        case ADD_ANSWER:
            const {qid,answer,authedUser} = action.payload
            return {
                ...state,
                [qid]:{
                    ...state[qid],
                    [answer]:{
                        ...state[qid][answer],
                        votes:[...state[qid][answer].votes, authedUser]
                    }
                }
            }
        case ADD_USER_ANSWER:
            const {qid,authedUser,answer} = action.payload
            return{
                ...state,
                [authedUser]:{
                    ...state[authedUser],
                    answers:{
                    ...state[authedUser].answers,
                    [qid]:answer
                },
              },
            }
users.js reducer

        case ADD_ANSWER:
            const {qid,answer,authedUser} = action.payload
            return {
                ...state,
                [qid]:{
                    ...state[qid],
                    [answer]:{
                        ...state[qid][answer],
                        votes:[...state[qid][answer].votes, authedUser]
                    }
                }
            }
        case ADD_USER_ANSWER:
            const {qid,authedUser,answer} = action.payload
            return{
                ...state,
                [authedUser]:{
                    ...state[authedUser],
                    answers:{
                    ...state[authedUser].answers,
                    [qid]:answer
                },
              },
            }
我使用redux thunk在一个函数中调用这两个操作

shared.js

export const handleAddAnswer = ({authedUser,qid,answer})=>{
    return (dispatch)=>{
                _saveQuestionAnswer ({ authedUser, qid, answer }).then(()=>{
                    dispatch(addAnswer({authedUser,qid,answer}))
                    dispatch(addUserAnswer({authedUser,qid,answer}))
        })
    }

}
最后,我使用MapStateTops在我的组件中使用它 Home.js组件

function mapStateToProps({questions,authedUser,users}){
    return {
        questions,
        unanswered:Object.values(questions).filter((question)=>{
            if(!Object.keys(authedUser.answers).includes(question.id)){
                return question
            }
        }).sort((a,b)=>b.timestamp - a.timestamp),
        answered:Object.values(questions).filter((question)=>{
            if(Object.keys(authedUser.answers).includes(question.id)){
                return question
            }
        }).sort((a,b)=>b.timestamp - a.timestamp),
        users,
        authedUser,
    }
}
export default connect(mapStateToProps)(Home)

这里没有发生突变。你的组件是如何订阅的?我编辑了这个问题以添加更多信息。我被困在这个问题上有2天了,所以有人能帮忙吗?因为你的选择器在每次执行时都会返回新对象,所以该组件应该在每次发送时完全重新加载,无论该操作是否更改了存储。你能看到devtools中的状态变化吗?