دوستان من در کامپوننت اصلی createContext رو انجام دادم و در کلاس کامپوننت خواستم استفاده کنم ولی هی خطا میده که مقدار دهی نشده !هزار با خود تمرین و سایت های مختلف خارجی هم گشتم جواب نگرفتم ..نمیفهمم یعنی چی انجام نمیشه:
import React,{Component} from 'react';
import {contexxs} from './index'
// برای این کلاس کامپوننت امتحان کردم جواب نداد هر کار کردم
class Roots1 extends Component{
static contextType=contexxs;
render(){
return(
<>
<p>shoma {console.log(this.context)}</p>
</>
)
}
}
export default Roots1;
این هم از کد در کلاس اصلی:
import React,{createContext} from 'react';
import ReactDOM from 'react-dom';
import Roots1 from './news'
import as serviceWorker from './serviceWorker';
// Roots,
export let contexxs=createContext();
class Show extends React.Component{
state={count:0}
render(){
return(
<contexxs.Provider value={{name:'ali',family:'mohammady',done:'false'}} >
<div className='container-main'>
<Doss />
</div>
</contexxs.Provider>
)
}
}
function Doss(props){
return(
<>
<Roots />
</>
)
}
ReactDOM.render(<Show />, document.getElementById('root'));
مشکلت رو که متوجه نشدم چیه ولی یه پیشنهاد که بهت میکنم اینه که اسم متغیر هاتو اینجوری نزار...
contexxs خیلی اشتباه برای نام گذاری متغیر هات اگر هم داری از چند تا Context استفاده میکنی از روشای مهندسی نرم افزار برای انتخاب اسم استفاده کن مثلا CamelCase که توی این روش اینجوری نام گذاری میکنیم contextAuthentication , contextPosts .
یکم تمیز تر و با حوصله تر کد بزنی کمتر به همچین مشکلایی برخورد میکنی توی کد زدنت
درسته حق با شماست در نگارش کد ها
ولی من همینطوری سر سری گذاشتم ..و کلمات مختلف رو چک میکردم گفتم شاید مشکل از برنامه باشه
به مشکل بر خوردم که خواستم context رو خواستم در کلاس ها استفاده کنم .که مقدار props رو از والد پاس بدم به کلاس فرزند پاس بدم وقتی والد و فرزند در یک ماژول هستن انجام میشه ولی کلاس فرزند در ماژول دیگری قرار داره این کار نمیدونم چرا برای من انجام نمیشه اگر context رو در کامپوننت کلاس استفاده کنم..
ولی برای فانکشن کامپوننت مشکلی پیش نمیاد و میشه از کانتکست استفاده کرد و مشکلی پیش نمیاد
توی استک اور فلو این رو سوال کردم جواب دادن
تو گروه های مختلف ایرانی رفتم جواب نداد کسی
حال ندید ..حال نداشت..یا هر دلیلی یه خارجی پیدا شد جواب بده دمش گرم ..کار راه بنداز هم بود
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟