代码之家  ›  专栏  ›  技术社区  ›  Roster

物料界面选择组件-组件正在将文本类型的受控输入更改为不受控

  •  0
  • Roster  · 技术社区  · 7 年前

    我试图更改Select input的值,然后在控制台中收到以下警告。

    索引js:1446警告:组件正在将文本类型的受控输入更改为不受控。输入元件不应从受控切换到非受控(反之亦然)。决定在组件的生命周期内使用受控或非受控输入元件。

    但我只是以正确的方式更新状态,这是我的代码

     <Select
            value={props.selectedService}
            onChange={props.handleSelectChange}
            inputProps={{
              name: 'selectedService',
    
            }}
          >
            <MenuItem value="">
              <em>None</em>
            </MenuItem>
            <MenuItem value="Dry Cleaning">Dry Cleaning</MenuItem>
            <MenuItem value="Washing and Ironing">Washing and Ironing</MenuItem>
            <MenuItem value="Rolling">Rolling</MenuItem>
          </Select>
    

    handleselectchange功能就在这里。

     handleSelectChange =({target: {name,value}}) => { 
    console.log(name);
    console.log(value); 
    this.setState({ 
    serviceRequest: { 
      selectedService: value 
    } 
    }); 
    }
    

    state = {
        open: false,
        selectedDate: new Date(),
        selectedTime : new Date(),
        mailDetails :{
          name:"",
          email:'',
          message:''
        },
        serviceRequest: {
          name: '',
          email: '',
          mobileNumber:'',
          address:'',
          landMark:'',
          selectedService:''
      }
    
      };
    

    有人能告诉我是怎么回事吗?

    0 回复  |  直到 7 年前
        1
  •  23
  •   Mohamad Shiralizadeh muhamad ridwan    6 年前

    这是因为 value={props.selectedValue}

    value={props.selectedValue ? props.selectedValue : " "}