首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react不能用简单的方式更新状态

react不能用简单的方式更新状态
EN

Stack Overflow用户
提问于 2021-08-25 21:03:05
回答 1查看 218关注 0票数 0

model.js

代码语言:javascript
复制
import axios from "axios"
import { action } from "easy-peasy"

export default {
    video: [],

    // Actions
    getVideo: action((state, id) => {
            axios.get(`http://localhost:8000/videos/${id}`)
            .then(res => {
                state.video = res.data[0]
            })
            .catch(err => {
                console.log(err)
            })
    })
}

Main.js

代码语言:javascript
复制
import React from 'react'
import { useEffect, useState } from 'react'
import { useStore, useStoreActions } from 'easy-peasy'

const Watch = () => {
    const video = useStore(state => state.video)
    const getVideo = useStoreActions(actions => actions.getVideo)

    useEffect(() => {
        getVideo(1)
        console.log(video)
    })

    return (
        <></>
    )

我刚开始用简单的方法,所以请容忍我.我不知道为什么状态没有被更新,我看到了一些示例代码,它以相同的方式更新状态,getVideo操作被调用,所以这不是问题,我如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2021-08-25 21:06:43

代码语言:javascript
复制
useEffect(() => {
        getVideo(1)
        console.log(video)
    })

在这里,在console.log(video)完全执行后不会调用getVideo(1)console.log显示相同的数据是很自然的。

你可以看到它实际上发生了如下变化。

代码语言:javascript
复制
 useEffect(() => {
            getVideo(1)
        })
    console.log(video)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68929847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档