راکت

مشکل در استفاده از context در class

3 پاسخ

دوستان من در کامپوننت اصلی 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'));
ثبت پرسش جدید

پاسخ‌ها

3
مهدی پاکروان
مهدی پاکروان
@mahdipakravan

تخصص: Mernstack Developer

مشکلت رو که متوجه نشدم چیه ولی یه پیشنهاد که بهت میکنم اینه که اسم متغیر هاتو اینجوری نزار...
contexxs خیلی اشتباه برای نام گذاری متغیر هات اگر هم داری از چند تا Context استفاده میکنی از روشای مهندسی نرم افزار برای انتخاب اسم استفاده کن مثلا CamelCase که توی این روش اینجوری نام گذاری میکنیم contextAuthentication , contextPosts .
یکم تمیز تر و با حوصله تر کد بزنی کمتر به همچین مشکلایی برخورد میکنی توی کد زدنت

محمد برزگر
محمد برزگر
@mohammadbrzbrz72

تخصص: react js

@mahdipakravan79

درسته حق با شماست در نگارش کد ها

ولی من همینطوری سر سری گذاشتم ..و کلمات مختلف رو چک میکردم گفتم شاید مشکل از برنامه باشه

به مشکل بر خوردم که خواستم context رو خواستم در کلاس ها استفاده کنم .که مقدار props رو از والد پاس بدم به کلاس فرزند پاس بدم وقتی والد و فرزند در یک ماژول هستن انجام میشه ولی کلاس فرزند در ماژول دیگری قرار داره این کار نمیدونم چرا برای من انجام نمیشه اگر context رو در کامپوننت کلاس استفاده کنم..
ولی برای فانکشن کامپوننت مشکلی پیش نمیاد و میشه از کانتکست استفاده کرد و مشکلی پیش نمیاد

شاید پاسخ شما همین‌جا باشد

محمد برزگر
محمد برزگر
@mohammadbrzbrz72

تخصص: react js

@mahdipakravan79

توی استک اور فلو این رو سوال کردم جواب دادن
تو گروه های مختلف ایرانی رفتم جواب نداد کسی
حال ندید ..حال نداشت..یا هر دلیلی یه خارجی پیدا شد جواب بده دمش گرم ..کار راه بنداز هم بود

https://stackoverflow.com/questions/60514686/how-to-use-context-for-class-component-in-other-module-in-react-js/6052856960528569

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام