• 0

خطأ this.setState is not a function في React؟

لدي مكون React التالي:

import React from 'react'

class Content extends React.Component {
  constructor(props) {
    super(props)
    this.state = {content: ''}
  }

  changeContent(e) {
    this.setState({content: e.target.value})
  } 

  render() {
    return (
      <div>
        Title: 
        <input type="text" value={this.content} 
          onChange={this.changeContent} />
      </div>
    )
  }
}

export default Content

لكن عند الكتابة في يظهر لي الخطأ:

this.setState is not a function

 

انشر على الشّبكات الاجتماعية


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

هل قمت بعمل bind لthis

عن طريق اضافة الكود التالي:

constructor(props) {
    super(props)
	this.changeContent = this.changeContent.bind(this)
}

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

يجب عليك عمل bind مثلما قال الأخ عبدالله

لكن إذا كان الأمر ليس واضحاً لك وأيضاً تريد إختصار الكود وجعله أسهل يمكنك استخدام دالة السهم arrow function لكي تتجنب استخدام bind

يمكنك تغيير الكود السابق الى هذا الشكل

import React from 'react'

class Content extends React.Component {
  constructor(props) {
    super(props)
    this.state = {content: ''}
  }

  changeContent = (e)=> {						// دالة السهم
    this.setState({content: e.target.value})	//Arrow Function
  } 

  render() {
    return (
      <div>
        Title: 
        <input type="text" value={this.content} 
          onChange={this.changeContent} />
      </div>
    )
  }
}

export default Content

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن