首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表单输入状态不显示开发人员工具中的更新,而是记录它们。我重新开始工作了吗?

表单输入状态不显示开发人员工具中的更新,而是记录它们。我重新开始工作了吗?
EN

Stack Overflow用户
提问于 2019-09-20 17:56:18
回答 1查看 281关注 0票数 0

我正在学习控制形式,并建立了一个简单的输入形式,以实践。当我查看工具时,组件的状态似乎没有被更新。如果我console.log状态,我可以看到状态在我输入的每一个字母中都发生了变化,但是在developer工具中没有任何变化。我担心它可能渲染不当。

我已经构建了表单,导出并导入到App.js中。一切似乎都是正确连接的,包括一个console.log,用于显示每一次更改的状态。

代码语言:javascript
复制
class Form extends Component {
    constructor(props) {
        super(props);
        this.state = {
            username: ''
        }
        this.handleChange = this.handleChange.bind(this)
    }


    handleChange(evt) {
        this.setState(
            {username: evt.target.value},
            () => console.log(this.state)
        )
    }

    render() {
        return (
            <form>
                <input 
                    name="username"
                    value={this.state.username}
                    onChange={this.handleChange}
                />
            </form>
        )
    }
}

我没有发现任何错误,但是观察到了两件有趣的事情:在react developer-tools中,在表单组件下,状态保持不变,但是会弹出一个小箭头,上面写着“重置值”,如果我单击App组件,然后返回到表单上,状态将被填充该值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-20 19:00:00

您可以检查反应文件

setState()的第二个参数是一个可选的回调函数,该函数将在setState完成并重新呈现组件后执行。通常,我们建议对这种逻辑使用componentDidUpdate()。

因此,如果回调被调用,那么一切都按预期的方式工作,这是因为组件重新呈现。

您正在使用上个月发布的react开发工具的最新版本吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58033146

复制
相关文章

相似问题

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