私は反応ネイティブ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'小道具を使用していない場合、入力の焦点を失うことにつながります。 – bennygenel