javascript - 在更改事件上绑定(bind)文本输入值 - React Native + Redux

标签 javascript forms reactjs redux

我在 React Native 和 Redux 中创建表单。我添加了 TextInput 并想在 Reducer 中更改此字段的状态。我遇到了麻烦,因为我不知道如何将 (change) => this.setState({change}) 函数添加到我的 Redux 架构中。我使用 combine reducers 并且不知道如何绑定(bind)该值。 简而言之,我需要在更改函数时获得 TextInput 的默认行为,但我必须使用 Redux 来完成它。

表单.js

const mapDispatchToProps = dispatch => {
  return {
      changeNameInput: () => dispatch({type: 'CHANGE_NAME_INPUT'})
  };
};

const mapStateToProps = state => {
  return {
      change: state.changeNameInput.change
  };
};

class Form extends React.Component {
  render() {
    return (
      <View>
         <FormLabel>Name</FormLabel>
         <TextInput
            onChangeText={this.props.changeNameInput}
            value={this.props.change}
        />
      </View>
    );
  }
}

Reducer.js

const initialState = {
    change: 'Your name'
   };

   const changeinputReducer = (state = initialState, action) => {
     switch (action.type) { 
       case 'CHANGE_NAME_INPUT':

  //Problem

         return {...state, change: '????' };
        default:
         return state;
     }
   };

   export default changeinputReducer;

最佳答案

为了将值从 TextInput 传递到 reducer,您需要更改调度函数:

const mapDispatchToProps = dispatch => {
  return {
      changeNameInput: (text) => dispatch({type: 'CHANGE_NAME_INPUT', text})
  };
};

在你的reducer中把它改成

const changeinputReducer = (state = initialState, action) => {
     switch (action.type) { 
       case 'CHANGE_NAME_INPUT':

  //Solution

         return {...state, change: action.text };
        default:
         return state;
     }
   };

希望它有用..

关于javascript - 在更改事件上绑定(bind)文本输入值 - React Native + Redux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48707765/

相关文章:

reactjs - 更新到 create-react-app 4.0.0 后的 typescript 问题

reactjs - 我如何 `npm link` 与对等依赖项的 typescript 依赖项?

javascript - 如何在d3.group中动态传递ES6剩余参数

javascript - Dojo AMD 加载器是否确保模块只执行一次?

javascript - 如何防止我的 PhoneGap webView 在 Android 上捕获 native 图片后刷新内容?

php - 使用PHP向MySQL表添加数据(修订版)

javascript - 如何使用 jquery 和 ajax 更新表单并提交

javascript - 在 Sequelize-CLI 中仅恢复两个迁移之一?

jquery - 表单不提交动态生成的输入(jQuery)

javascript - react ,页面刷新后使用useEffect丢失localStorage中保存的数据