React Redux 同步操作 returns 一些代理对象而不是字符串

React Redux sync action returns some Proxy object instead of string

我有一个输入 currentAnswer:

    <input
      value={props.currentAnswer}
      onChange={(text) => dispatch(onChangeAnswer(text))}
    />

调用函数onChangeAnswer:

export function onChangeAnswer(text) {
  console.log(text);
  return { type: ON_CHANGE_ANSWER, data: text };
}

减速器:

export default function reduce(state = initialState, action) {
  switch (action.type) {
  case ON_CHANGE_ANSWER:
    return assign({}, state, {
      currentAnswer: action.data
    });

异步操作运行良好,但当我更改输入中的文本时,我在控制台中看到下一个对象:

{type: "ON_CHANGE_ANSWER", data: Proxy}
  data: Proxy {dispatchConfig: null, _targetInst: null, …}
  type: "ON_CHANGE_ANSWER"

因此,我希望 data 将在字段文本中输入。

我应该以某种方式发送它吗?我显然不了解这一切是如何运作的。

输入的 onChange 正在返回一个事件。您要做的是更改行

onChange={(text) => dispatch(onChangeAnswer(text))}

对此:

onChange={(text) => dispatch(onChangeAnswer(text.target.value))}

获取您在输入中输入的值。

您获得的代理是 React SyntheticEvent,它使事件在浏览器中的行为相同。您需要从 target 访问原始值 HTML 元素:

<input
  value={props.currentAnswer}
  onChange={(event) => dispatch(onChangeAnswer(event.target.value))}
/>

顺便说一句 - events get nullified for performance reasons - 所以你实际上不能传递事件做 redux。