【问题标题】:Change input value with React Rudux使用 React Redux 更改输入值
【发布时间】:2019-05-03 13:38:11
【问题描述】:

我正在使用 react redux 创建一个 CRUD 来学习 react。
但是我不能用 react redux 改变输入值。

这是我的 form.js

class UsuarioForm extends Component {

    render() {
        return (
            <div className="animated fadeIn">
                <Row>
                    <Col xs="12">
                        <FormGroup>
                            <Label htmlFor="name">Nome</Label>
                            <Input type="text" id="nome" value={this.props.usuario.Nome} placeholder="Informe o nome" />
                        </FormGroup>
                    </Col>
                </Row>
                <Row>
                    <Col xs="12">
                        <FormGroup>
                            <Label htmlFor="ccnumber">Usuário</Label>
                            <Input type="text" id="ccnumber" value={this.props.usuario.Login} placeholder="Informe o login" required />
                        </FormGroup>
                    </Col>
                </Row>

                <Button type="submit" size="sm" color="primary">
                    <FontAwesomeIcon icon="check" /> Gravar
                </Button>
                <Button type="button" size="sm" color="danger" onClick={this.voltar.bind(this)}>
                    <FontAwesomeIcon icon="arrow-left" /> Voltar
                </Button>
            </div>
        );
    }
}

const mapStateToProps = state => {
    return { usuario: state.usuarioFormReducer };
};

const mapDispatchToProps = dispatch => {
    return {
        busca: (id) => {
            dispatch(UsuarioService.busca(id));
        }
    }
}

const UsuarioFormContainer = connect(mapStateToProps, mapDispatchToProps)(UsuarioForm);

export default UsuarioFormContainer;

这个怎么做?我需要使用减速机来改变吗?我需要使用 react 的状态吗?

【问题讨论】:

  • 能否格式化您的代码?

标签: javascript reactjs redux react-redux flux


【解决方案1】:

您需要创建一个 setName 函数并在每次按键时将其添加到输入中

action.js

export const setName = (value) => ({
  type: 'SET_NAME',
  payload: value
})

reducer.js

const initialState = {
  Nome: '',
  Login: '',
}
export function usuarioFormReducer(state = initialState, action) {
    switch (action.type) {
    case SET_NAME:
        return {
            ...state,
            Nome: action.payload,
        };
 }
}

【讨论】:

  • 注意:保存表单信息不是一个好习惯。在商店级别而不是州级别。
  • 但不要使用redux,我需要使用redux
猜你喜欢
  • 2020-11-08
  • 2020-09-24
  • 1970-01-01
  • 2018-07-20
  • 2021-07-02
  • 2016-11-08
  • 1970-01-01
  • 2021-12-07
  • 1970-01-01
相关资源
最近更新 更多