Rayden Storm نشر 20 مارس 2021 أرسل تقرير نشر 20 مارس 2021 أنا أكتب مكونًا بسيطًا في ES6 (مع BabelJS) ، ووظائف this.setState لا تعمل. Cannot read property 'setState' of undefined ها هو الكود: import React from 'react' class App extends React.Component { constructor(props) { super(props) this.state = {inputContent: 'startValue'} } sendContent(e) { console.log('sending input content '+React.findDOMNode(React.refs.someref).value) } changeContent(e) { this.setState({inputContent: e.target.value}) } render() { return ( <div> <h4>The input form is here:</h4> Title: <input type="text" ref="someref" value={this.inputContent} onChange={this.changeContent} /> <button onClick={this.sendContent}>Submit</button> </div> ) } } export default App اقتباس
0 محمد أيت لعرايك نشر 20 مارس 2021 أرسل تقرير نشر 20 مارس 2021 (معدل) أنا أنصحك بإستخدام arrow function مثال class SomeClass extends React.Component { changeContent = (e) => { // arrow function هنا تم إستخدام دالة الأسهم this.setState({inputContent: e.target.value}) // this والأن يمكنك الوصول إلى المكون عن طريق } render() { return ( <button onClick={this.handleClick}></button> ); } } في حالة عدم إستخدام دالة السهم سيكون الكود على الشكل التالي: class SomeClass extends React.Component { changeContent(e) { this.setState({inputContent: e.target.value}) //هنا خطأ } render() { return ( <button onClick={()=>{this.handleClick}}></button> ); } } وهذا يعمل بسبب حقيقة أن وظائف السهم arrow functions لا تكون this خاصة بها ، ولكن تأخد هذا من المكون المجودة بها. في هذه الحالة ، فإن this يشير إلى المكون الخاص بك - تم التعديل في 20 مارس 2021 بواسطة محمد أيت لعرايك اقتباس
السؤال
Rayden Storm
أنا أكتب مكونًا بسيطًا في ES6 (مع BabelJS) ، ووظائف this.setState لا تعمل.
Cannot read property 'setState' of undefined
ها هو الكود:
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.