반응 원시 projetc에서 작업 중이며 Redux를 잘 이해하지 못합니다.특정 배열 항목의 입력 값을 redux에 업데이트 할 수 없습니다.
lines[
{"cant":2, "ref":"bar"}, {"cant":5, "ref":"foo"}
]
모든 라인 카드 정보입니다 : 나는 우리가 같이 그것을 객체의 배열을 가지고 help.:D 이 필요합니다. 이 카드는 값을 변경하기위한 입력 (캔트, 레퍼런스)을 가지고 있습니다. 전체 목적은 :
obj:{
"a": '',
"b": '',
"lines": [
{"cant":2, "ref":"bar}",
{"cant":5, "ref":"foo"}
]
}
사용자는()를 호출 onChangeText 어떤 입력 값의 일부를 삽입 할 때. 한편 감속기의
<Input
placeholder="Cant"
value={this.props.newOrder.lines[index].cant}
onChangeText={(text)=> {
this.props.onChangeCant({"cant":text,"index":index});
}}
/>
(우리가 사용하는 반응 - 애드온 업데이트 일) :
case ON_CHANGE_CANT:
return update(state, {
lineas: {
[action.payload.index]: {
cant: {$set: action.payload.cant}
}
}
});
모든 것은 단지 하나의 문자를 업데이트만을 제외하고는 OK입니다. 예 : Cant : 1. 그러면 입력 포커스가 누락됩니다. 당신이 타자를 치면 : Cant : . 업데이트 만 입니다. 더 빨리 입력해도 상관 없습니다. 입력 한 첫 번째 문자 만 업데이트하십시오. 우리는 Redux의 동작이 문제라고 의심하지만 그 이유를 알지 못합니다.
우리는 디 바운스 (lodash)를 사용하려고하지만 우리는어떤 생각
제발 성공하지?정말 고마워요! 나는 그것이 내 설명을 이해하기를 바랍니다.
'lines'은 배열이지만, 감속기에서는 객체 인 것처럼 취급합니다. –
당신은 어떻게'_.debounce'를 사용하여 시도했는지 보여 줄 수 있습니까 – Aaqib
지도로 입력을 만드십니까? 문제는 구성 요소의 다시 렌더링으로 인한 것일 수 있습니다. 소품이 변하기 때문에 재 렌더링을 시작하고'key' prop를 사용하지 않으면 입력의 초점을 잃을 수도 있습니다. – bennygenel