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

السؤال

Recommended Posts

  • 0
نشر

يمكنك تنفيذ المطلوب عبر تمرير الدالة المسؤلة عن تغيير الحالة من المُكون الأب إلى المُكون الإبن, يمكنك فهم ذلك بشكلٍ أفضل عبر المثال التالي

const Parent = ()=>{
	const [name, setName] = useState("")
    
    const changeName = (value)=>{
    	setName(value)
    }
    return(
    	<Child changeName = {changeName}/>
    )
}

const Child = ({changeName})=>{

return(
	<input type='text' onChange={e=>changeName(e.target.value)}/>
)

}

كما تلاحظ عند تغيير قيمة الinput في المكون الإبن يتم مناداة الدالة changeName التي بدورها تقوم بتغيير الstate الخاص بالمكون الأب

  • 0
نشر

إذا كنت تستخدم مكون صف Class Component يمكنك استدعاء التابع setState من صنف المكون وتمرير غرض يحوي القيم التي تريد تغييرها كالتالي 

class MyComponent extends Component {

  ...
  
  function render() {
   ...

    this.setState({ state: 'القيمة الجديدة' });

   ...
  }
}

بينما إذا كنت تستخدم مكون تابع Functional Component يمكنك استخدام الخطاف useState سيعيد لك مصفوفة العنصر الأول منها هو الحالة والثاني هو تابع لتغيير الحالة يمكن تمرير القيمة له مباشرة كالتالي

function MyComponent() {
 const [state, setState] = useState();
  
  ...
  
  setState('القيمة الجديدة');
  
  ...
}

يمكنك مراجعة المقال التالي لقراءة المزيد

 

  • 0
نشر
بتاريخ 1 دقيقة مضت قال Hassan Hedr:

إذا كنت تستخدم مكون صف Class Component يمكنك استدعاء التابع setState من صنف المكون وتمرير غرض يحوي القيم التي تريد تغييرها كالتالي 


class MyComponent extends Component {

  ...
  
  function render() {
   ...

    this.setState({ state: 'القيمة الجديدة' });

   ...
  }
}

بينما إذا كنت تستخدم مكون تابع Functional Component يمكنك استخدام الخطاف useState سيعيد لك مصفوفة العنصر الأول منها هو الحالة والثاني هو تابع لتغيير الحالة يمكن تمرير القيمة له مباشرة كالتالي


function MyComponent() {
 const [state, setState] = useState();
  
  ...
  
  setState('القيمة الجديدة');
  
  ...
}

يمكنك مراجعة المقال التالي لقراءة المزيد

 

مش ده قصدي 

ازاي اعدل علي ال state من ملف تاني مش منفس الملف

  • 0
نشر
بتاريخ 6 دقائق مضت قال Kerollos nagy:

مش ده قصدي 

ازاي اعدل علي ال state من ملف تاني مش منفس الملف

يجب إرفاق المثال الذي تعمل عليه كنص وتنسيقه كشيفرة مع توضيح استفسارك تمامًا على المثال الذي تواجه فيه المشكلة  

  • 0
نشر
بتاريخ 1 دقيقة مضت قال Hassan Hedr:

يجب إرفاق المثال الذي تعمل عليه كنص وتنسيقه كشيفرة مع توضيح استفسارك تمامًا على المثال الذي تواجه فيه المشكلة  

طب هل ممكن انادي علي state من ملف اخر

  • 0
نشر
بتاريخ 2 دقائق مضت قال Kerollos nagy:

طب هل ممكن انادي علي state من ملف اخر

لا يمكن ذلك مباشرة حيث أن الحالة هي خاصة داخل المكون نفسه ولا يمكن لمكون الآخر محاولة التعديل فيها،

يمكن بدل من ذلك تمرير خصائص props للمكون كالتالي

<MyComponent propName='قيمة الخاصية'/>

ومن داخل المكون يمكن الوصول إليها إما عبر this.props في مكونات الصفوف:

class MyComponent extends Component {

  ...
  
  function render() {
   ...

    this.props.propName;

   ...
  }
}

أو من خلال أو معامل للمكونات التابع:

function MyComponent(props) {
  
  ...
  props.propName
  
  ...
}

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...