【问题标题】:updating jsx with the response of the axios et call [duplicate]使用 axios et 调用的响应更新 jsx [重复]
【发布时间】:2020-08-22 02:05:35
【问题描述】:

从 get Axios 调用获得响应后,我需要更新 HTML,但在更新 jsx 时,如下所示:

instance.get('/done.json').then(response => {
    task = response.data[Object.keys(response.data).pop()][props.match.params.id-1]
     console.log(task)
    // setseletectask(task)
        taskHmtl = (
        <Fragment>
            <p>{task.title}</p>
            <p>{task.done}</p>
        </Fragment>
    )
    }).catch(error=>console.log(error))

它不会更新,所以我必须创建一个新状态并使用响应值更新它。 我需要知道为什么第一种方法不能正常工作。

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    它没有更新,所以我必须创建一个新状态并使用响应值更新它

    正确

    我需要知道为什么第一种方法不能正常工作。

    组件已经渲染,给全局变量赋值不会触发重新渲染。这就是 React 中存在状态的原因。

    【讨论】:

    • 我明白你的意思了,这就是为什么我们需要状态用新值重新渲染 dom。但这意味着如果我有全局变量的初始值,它将在更新后渲染声明变量将使用新值呈现,对吗?
    • 我认为是这样,但这不是我有理由测试的东西。全局变量通常只是一场噩梦,最好避免。
    猜你喜欢
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 2019-12-19
    • 2021-01-06
    • 2021-10-20
    • 2019-10-02
    • 2021-10-05
    • 2017-12-11
    相关资源
    最近更新 更多