Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Redux未更新nasted状态_Reactjs_React Native_Redux_React Redux - Fatal编程技术网

Reactjs Redux未更新nasted状态

Reactjs Redux未更新nasted状态,reactjs,react-native,redux,react-redux,Reactjs,React Native,Redux,React Redux,我有一个数组,我正在从子组件分派LIKE\u POST操作。Redux状态已更新,但视图未更新。我正在使用Flatlist。并使用extradata。(工作添加帖子和删除帖子操作) action.post id 在减速器中: const initialState = { feedData: [], loading: false, }; ... //FETCH FEED ... case LIKE_POST:

我有一个数组,我正在从子组件分派
LIKE\u POST
操作。Redux状态已更新,但视图未更新。我正在使用
Flatlist
。并使用
extradata
。(工作
添加帖子
删除帖子
操作)

action.post id

在减速器中:

    const initialState = {
        feedData: [],
        loading: false,
    };
...
//FETCH FEED
...
    case LIKE_POST:
                return {
                    ...state,
                    feedData: [
                        ...state.feedData.map((post) => {
                            if (post.id === action.payload) {
                                return {
                                    ...post,
                                    like: {
                                        count: 1,
                                        isLiked: true,
                                    },
                                };
                            }
                            return post;
                        }),
                    ],
                };
记录器正在返回
如:1
islike:true
,但视图未更新。

我解决了问题

我在
feedData
的组件中使用
useState
钩子。当我删除useState并直接使用存储的数据时。成功了

const feedData = useSelector(state=>state.feed.feedData)
const [data, setData] = useState(feedData) => THIS IS THE MISTAKE

让我们看看您在这里使用的选择器(或
useSelector
connect
)调用。另外,一般来说,您可能应该遵循,而不是手工编写普通的redux逻辑,因为在RTK减缩器中,您可以使用变异逻辑。在这种情况下,您的代码将变成
constfound=state.feedData.find(post=>post.id==action.payload);if(found){found.like={count:1,isLiked:true}
恭喜你!