javascript - 状态已更改,但组件未刷新

标签 javascript reactjs

我正在更改状态,我可以在 console.log 中看到新状态,但是,TextArea 不显示新状态,但只有当它首次展示。

这是我的实现:

import React, {Component} from 'react';
import {TextArea} from "semantic-ui-react";

class Output extends Component {

    static myInstance = null;
    state = { keys:[] }

    updateState(){
        // this method is called from outside.. 
        this.setState({ keys:this.state.keys.push(0) });
        // I can see that keys are getting increase
        console.log(this.state.keys);
    }

    render() {
        return (
            <TextArea value={this.state.keys.length} />

        );
    }
}

TextArea 将继续显示 0,尽管 state.keys 的长度增加了..

有什么想法吗?

最佳答案

永远不要改变状态。 要更新状态,请使用以下语法:

this.setState(prevState => ({
  keys: [...prevState.keys, newItem]
}))

关于javascript - 状态已更改,但组件未刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54312162/

相关文章:

javascript - Grunt PostCSS 编译非常慢

php - bootstrap twitter datepicker + modal - 日历出现在父屏幕而不是模态屏幕

javascript - 是否可以在没有插件的情况下在浏览器中实现语音聊天?

javascript - 如何在 React 中绘制红色水平线

reactjs - react-app-rewire 的 npm start run 问题

javascript - 有没有办法让 css3 类跟随鼠标光标

javascript - 在knockout js中显示json对象详细信息

javascript - 如何在 javascript 中使用 z-index 禁用输入或使用react?

reactjs - 通过在 React.js 中传递值使字体粗细加粗

reactjs - 如何保存或缓存组件的 html?