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。
我有一个输入 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。