javascript - 无法使用 webpack-dev-server 调用 React.Component.setState()

标签 javascript reactjs webpack-dev-server setstate

我有一个相当普通的react组件,我想在其中跟踪输入的值。该组件定义如下。

import React from 'react';

class MyInput extends React.Component {
  constructor(props) {
    super(props);
    this.state = { value: 'initial value' };
    this.handleChange = this.handleChange.bind(this);
  }

  handleChange(event) {
    this.setState({ value: event.target.value });
  }

  render() {
    return (<input onChange={this.handleChange} />);
  }
}

如果我使用 webpack 编译代码,那么效果很好,但是当我尝试使用 webpack-dev-server 进行热重载时,我收到此错误:

(unknown) Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component.

我检查了安装情况,当发出此警告但状态没有更新时,组件肯定已安装。当你用谷歌搜索警告时出现的所有内容都与人们在组件卸载后调用它有关,这又不是这里发生的事情。您知道这种情况下会发生什么吗?

最佳答案

我使用了您的组件(修复了 onChange 拼写错误)并添加了导出语句。工作正常!

import React from 'react';

class MyInput extends React.Component {
    constructor(props) {
    super(props);
    this.state = { value: 'initial value' };
    this.handleChange = this.handleChange.bind(this);
}

handleChange(event) {
    this.setState({ value: event.target.value });
}

render() {
    return (
        <input onChange={this.handleChange} />
    );
  }
}
export default MyInput;

关于javascript - 无法使用 webpack-dev-server 调用 React.Component.setState(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43685216/

相关文章:

vue.js - 尝试 npm runserve 时如何修复 "This relative module was not found: * ./src/main.js in multi..."错误

reactjs - 如何使用外部IP访问webpack-dev-server

webpack-dev-server - 在 webpack2 中使用 webpack-dev-server 设置在浏览器中自动打开的 url

javascript - 如何在不点击 react 元素的情况下检测时间

javascript - 在 AngularJS 中创建元素时如何在元素上执行外部函数?

django - 如何让 Nginx 仅代理传递 "/"位置并在其余位置提供 index.html

javascript - ES6 + React 组件实例方法

javascript - 新的数组语法,多个参数

javascript - 如何使用map函数在第一个react组件中添加图像并忽略其余组件

javascript - 页面刷新后 react 路由器找不到页面