首页 > 解决方案 > 编辑未在 react-native 中填充的屏幕字段

问题描述

当用户点击列表中的行时,我尝试打开相关记录的编辑屏幕。我在调试器中看到所有道具都成功通过了,但不知何故我无法在屏幕上显示它们。我搜索了很多,我认为主要问题在于 onRowPress 助手。当我按下该行时,我在调试器中看到所有道具都已正确传递。但是有一个错误说

道具类型失败:提供给 value的道具类型无效,预期为。arrayTextInputstring

我的问题是我应该如何处理这个错误。

控制台日志

 onRowPress() {
        console.log(this.props.employee);
        Actions.employeeEdit({ employee: this.props.employee });
      }

标签: react-nativereact-redux

解决方案


这需要时间,但我解决了这个问题。主要问题是以下错误;

道具类型失败:提供给 TextInput 的类型数组的道具值无效,应为字符串。

我按照所有代码一步一步地进行操作,发现使用我传递的值更新道具的减速器无法做到这一点。我在 actions.payload.value 中添加了一个 toString() 方法,一切正常。您必须将字符串传递给 Input 组件。

export default (state = INITIAL_STATE, action) => {
  switch (action.type) {
    case EMPLOYEE_UPDATE:
      return { ...state, [action.payload.prop]: action.payload.value.toString() };
    case EMPLOYEE_CREATE:
      return INITIAL_STATE;
    case EMPLOYEE_SAVE_SUCCESS:
      return INITIAL_STATE;
    default:
      return state;
  }
};

推荐阅读