[javascript] تعديل صحيح لصفائف الحالة في ReactJS


1 Answers

أسهل ، إذا كنت تستخدم ES6 .

initialArray = [1, 2, 3];

newArray = [ ...initialArray, 4 ]; // --> [1,2,3,4]

سيكون الصفيف الجديد [1,2,3,4]

لتحديث حالتك في React

this.setState({arrayvar:[...this.state.arrayvar, newelement]});

معرفة المزيد حول تدمير المجموعة

Question

أريد إضافة عنصر إلى نهاية مصفوفة state ، هل هذه هي الطريقة الصحيحة للقيام بذلك؟

this.state.arrayvar.push(newelement);
this.setState({arrayvar:this.state.arrayvar});

أنا قلق من أن تعديل الصفيف في المكان مع push قد يسبب مشاكل - هل هو آمن؟

البديل من صنع نسخة من مجموعة ، و setState جي التي تبدو مهدرة.




كما ذكر nilgun @ في التعليق ، يمكنك استخدام مساعدين immutability رد فعل. لقد وجدت هذا ليكون مفيدا للغاية.

من المستندات:

دفعة بسيطة

var initialArray = [1, 2, 3];
var newArray = update(initialArray, {$push: [4]}); // => [1, 2, 3, 4]

initialArray لا يزال [1 ، 2 ، 3].




Related