小编Lea*_*uez的帖子

反应-警告:已从更新函数内部安排了更新

我正在处理有关在React中更新状态以进行验证的许多问题,无论如何,我总是在渲染或类似操作之后更新状态,无论如何,我看到很多人使用中的回调函数来解决此问题setState,但它总是抛出以下警告。

警告:已从更新函数内部安排了更新(setState,replaceState或forceUpdate)。更新函数应该是纯函数,且副作用为零。考虑使用componentDidUpdate或回调。

我尝试在内部进行更新componentDidUpdate,但这会导致无限循环。

这是我setState的回调函数。

state = {
    index: 0,
    activeInput: '',
    errors: {
      error: false,
      errorNombre: false,
      errorCuil: false,
      errorEmail: false,
      errorContrasena: false,
      errorCalle: false,
      errorNumero: false,
      errorProvincia: false,
      errorLocalidad: false
  },
    values: {...this.props.initialValues}
  };

    _onChangeValue = (name, value) => {
        this.setState(prevState => {
          return {
            values: {
              ...prevState.values,
              [name]: value
            }
          }, this.validate(name)
        })
      };
Run Code Online (Sandbox Code Playgroud)

这是Validate Function,是一个开关,所以我花了更长的时间,但问题可能是每种情况下都有另一个setState ...

validate = input => {

    switch(input){
      case 'nombre':
        let { nombre } = this.state.values
        let …
Run Code Online (Sandbox Code Playgroud)

javascript warnings setstate reactjs

5
推荐指数
1
解决办法
2575
查看次数

标签 统计

javascript ×1

reactjs ×1

setstate ×1

warnings ×1