在使用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时,是否有任何方法可以在更改组件级别状态时重新呈现组件?