Javascript 对此作出反应。设置安装或安装时的状态警告

Javascript 对此作出反应。设置安装或安装时的状态警告,javascript,events,reactjs,Javascript,Events,Reactjs,我一直得到: 警告:设置状态(…):只能更新已安装或正在安装的 组成部分这通常意味着您在未安装的服务器上调用了setState() 组成部分这是禁止操作。请检查SearchInput的代码 组成部分 我尝试过以下方法: 问题很简单:当用户在输入字段中键入内容时,通过onChange属性和setState import React, { Component } from 'react'; class SearchInput extends Component { constructor

我一直得到:

警告:设置状态(…):只能更新已安装或正在安装的 组成部分这通常意味着您在未安装的服务器上调用了setState() 组成部分这是禁止操作。请检查SearchInput的代码 组成部分

我尝试过以下方法:

问题很简单:当用户在输入字段中键入内容时,通过
onChange
属性和
setState

import React, { Component } from 'react';

class SearchInput extends Component {
  constructor() {
    super();
    this.state = {
      inputValue: ''
    };
    this.onChange = this.onChange.bind(this);
  }

  render() {
    return (
      <input
        type="text"
        value={this.state.inputValue}
        onChange={this.onChange} />
    );
  }

  onChange(e) {
    console.log('yo');
    this.setState({ inputValue: e.target.value });
  }
}

export default SearchInput;
在此之后:

但当我回到以前的状态时:

{
  "presets": ["es2015", "stage-1", "react"],
  "plugins": ["react-hot-loader/babel"]
}
警告消失了


最新最小值中的某个值不抖动。

使用defaultValue而不是value

render() {
 return (
  <input
    type="text"
    defaultValue ={this.state.inputValue}
    onChange={this.onChange} />
 );
}
render(){
返回(
);
}
检查此非受控组件概念:


基本上输入保持自己的状态当您设置值使用表达式时,它将在呈现SearchInput组件时触发输入组件(未安装组件)中的状态更改。

在什么情况下会收到警告?
状态={inputValue:“”
请尝试在构造函数上方指定状态,而不要在100%的内部指定。请确保错误与上面的代码无关。@zerkms我正在使用webpack加载具有根入口点的index.html。唯一的组件就是这个
@FurkanO你能详细说明一下吗?
render() {
 return (
  <input
    type="text"
    defaultValue ={this.state.inputValue}
    onChange={this.onChange} />
 );
}