Значение на входе не изменилось при изменении состояния на React + Redux - PullRequest
0 голосов
/ 04 июля 2019

не могли бы вы помочь мне с этим?Мне нужно иметь вход, который считывает его значение из свойства "cantidad" в состоянии избыточности, поэтому, когда свойство "cantidad" меняет входное значение, тоже меняется, я достигаю изменения "cantidad" в состоянии избыточности, но нетна самом компоненте.Это должно быть просто, но я не могу получить идентификатор.

Мое состояние:

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);

Я ожидаю, что значение входа изменитсякогда значение 'cantidad' в состоянии избыточности изменяется

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Это может помочь посмотреть на ваш редуктор.Я также не уверен, используете ли вы его еще, но вы не определили mapDispatchToProps ()

0 голосов
/ 04 июля 2019

Вот пример полного управляемого входа .

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} />
        )
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...