使用redux-form时,组件不会在组件级别状态更改时重新呈现

时间:2019-02-24 22:59:11

标签: reactjs redux redux-form

在使用redux-form时,有什么方法可以在更改组件级别状态时重新呈现组件?

我正在使用Material UI呈现输入,用于以Redux形式Field组件包装的密码提交。我想使用组件级别状态来控制客户端是否可以看到其密码,而不是将其传递到我的redux存储。客户端可以在材料UI onClick上更新组件级别状态IconButton,从而调用this.handleClickShowPassword

密码是否可见由type组件中的Input字段控制。

   <FormControl className={classNames(classes.textField)}>
    <InputLabel htmlFor="adornment-password">Password</InputLabel>
    <Input
      id="adornment-password"
      type={this.state.showPassword ? 'text' : 'password'}
      {...input}
      endAdornment={
        <InputAdornment position="end">
          <IconButton
            aria-label="Toggle password visibility"
            onClick={this.handleClickShowPassword}
          >
            {this.state.showPassword ? <Visibility /> : <VisibilityOff />}
          </IconButton>
        </InputAdornment>
      }
    />
  </FormControl>

  handleClickShowPassword = () => {
    this.setState(state => ({ showPassword: !state.showPassword }));
    // this.forceUpdate(); this didn't work either
  }

FormControl存在于Redux形式renderPasswordInput中称为Field的较大函数中,如下所示:

<Field name="password" component={this.renderPasswordInput} label="Password" />

除非我更改输入中的值,即除非redux-form正在分派和更新其管理的状态,否则我的组件不会重新呈现(在这种情况下,更改密码是否可见)。使用redux-form时,是否有任何方法可以在更改组件级别状态时重新呈现组件?

0 个答案:

没有答案