اذهب إلى المحتوى
  • 0

هل من الخطأ أن أستخدم inline arrow functions في JSX props؟

Adam Ebrahim

السؤال

أقوم بإستخدام lint في مشروع react ويظهر لي الخطأ التالي:

error    JSX props should not use arrow functions        react/jsx-no-bind

وأعتقد أن هنا سبب المشكلة (في onClick):

{this.state.people.map(tile => (
  <span key={tile.img}>
    <Checkbox onCheck={() => this.selectPerson(tile)} />
                       
    <GridTile actionIcon={<IconButton onClick={() => this.handleDelete(tile)}><Delete color="red"/></IconButton>}>
      <img onClick={() => this.handleOpen(tile.img)} src={tile.img} />
    </GridTile>
  </span>
))}

هل من الخطأ أن أستخدم inline arrow functions في JSX props؟ وإن كان كذلك ما هي الطريقة الأفضل لأمر كهذا؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

هذا النمط يؤذي ال performance لأن الدالة سيتم إنشاؤها في كل مرة مع كل render وبالتالي في حالتك سيتم إنشاء المكون IconButton - Checkbox - img دائماً مع كل render ولحل هذه المشكلة فقط قم بالإشارة إليها هكذا 
 

selectPerson = tile => {
	// قم بعمل ما تريد
}

handleDelete = tile => {
	// قم بعمل ما تريد
}

handleOpen = img => {
 // قم بعمل ما تريد
}


{this.state.people.map(tile => (
  <span key={tile.img}>
    <Checkbox onCheck={this.selectPerson(tile)} />
                       
    <GridTile actionIcon={<IconButton onClick={this.handleDelete(tile)}><Delete color="red"/></IconButton>}>
      <img onClick={this.handleOpen(tile.img)} src={tile.img} />
    </GridTile>
  </span>
))}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...