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

تغير قيمه state من component اخر في React.js

Kirolos Nagy2

السؤال

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...