如何在每次单击时使文本输入可编辑?

时间:2019-08-14 22:51:20

标签: react-native redux

因此,我有一个项目列表,当您单击其中一个项目时,它将显示一个模态,其中包含有关该项目的信息。我有一个文本框可以在要让用户输入注释的地方输入注释。它可以成功保存用户键入的注释并显示占位符,直到它们出现为止。但是,一旦退出模态并备份它,它将显示第一次编写的内容,但您将无法再对其进行更改。

这是我在模式中的文本输入(currItem是被按下以调出模式并接受道具的项目)

<TextInput
   placeholder={'Add notes'}
   value={this.props.currItem.notes}
   multiline
   style={styles.notesInput}
   onChangeText={this.onNotesChange.bind(this)}
/>

我的便笺更改功能:

onNotesChange(text) {
    this.props.notesChanged(text);
    console.log(this.props.currItem.notes);
  }

从onNotesChange调用的操作:

export const notesChanged = (text) => {
  return {
    type: CHANGE_NOTES,
    payload: text
  };
};

以及接收它的减速器:

case CHANGE_NOTES:
      return {
        ...state,
        itmes: state.items.map(item => ((item.id === state.currItem.id)
          ? { ...item, notes: action.payload } : item))
      };

在项目的初始状态下,注释也存储为:

items: [...state.items, {
          id: state.items.length,
          text: action.text,
          notes: null,
        }]

在redux端,一切正常,并且状态中存储的内容正确显示。同样,问题在于,一旦我关闭了模态并将其备份打开,它就不再可编辑。

0 个答案:

没有答案