javascript - 当 React + Redux 的状态改变时,输入的值没有改变
问题描述
你能帮我解决这个问题吗?我需要有一个输入从 redux 状态下的属性“cantidad”读取他的值,因此,当“cantidad”属性更改时,输入值也会更改,我实现了更改 redux 状态上的“cantidad”,但没有在组件本身上。这应该很简单,但我无法完成 id。
我的状态:
carrito: {
articulosEnCarrito: [
{
id: '3937',
cantidad: 15
}
],
total: 0
},
我的组件:
const ControlDeCantidades = props => {
const handleAumentarCantidad = id => {
props.agregarACarrito(id);
};
const articulo = props.articulosEnCarrito.find(
articulo => articulo.id === props.idDeArticulo
);
return (
<div>
<button type="button" onClick={e => {
e.preventDefault();
handleReducirCantidad(props.idDeArticulo);
}}
>
<input type="number" defaultValue={articulo.cantidad} />
</div>
);
};
const mapStateToProps = state => {
return {
articulosEnCarrito: state.carrito.articulosEnCarrito
};
};
export default connect(
mapStateToProps,
mapDispatchToProps
)(ControlDeCantidades);
我希望当 redux 状态上的“cantidad”值发生变化时输入的值会发生变化
解决方案
这是一个完全受控输入的例子。
const Input = () =>{
const [value, setValue] = useState('')
return(
<input value={value} onChange={e => setValue(e.target.value)} />
)
}
只是将值传递给输入而没有更新它的方法会使输入受控和不受控,您应该提供一个回调来更新值。使用类:
class Input extends React.Component{
state ={ value: ''}
onChangeHandler = e => this.setState({value: e.target.value})
render(){
return(
<input value={this.state.value} onChange={this.onChangeHandler} />
)
}
}
推荐阅读
- php - 如何使用 TwitterAPIExchange 按国家/地区查找关注度最高的帐户?
- gulp - 运行 gulp.series() 的问题
- r - 带有特定字母的 Wordcloud
- r - 使用“geom_curve”在“ggplot2”中用另一条具有相同位置但在“ggplot2”中切割开始和结束的曲线覆盖曲线
- javascript - axios oauth 请求失败,出现 401
- php - 在 Google Analytics API v3 + PHP 中按时间指标获取时间序列/数据
- bash - How to run CONSUL (agent -dev) with predefined key value using bash
- java - byte-buddy 可以用作非反射方式来收集 [field]/[method return] 值作为集合或映射吗?
- javascript - Moment() 与预定义的 Moment().endof 日期
- macos - 使用 NSRuleEditor 显示保存的条件时遇到问题