sajjad
4 سال پیش توسط sajjad مطرح شد
4 پاسخ

صدا زدن یه کامپوننت در رویداد onClick

سلام تازه واردم
صدا زدن یه کامپوننت دیگه درون کامپوننت با استفاده از رویداد onClick

من اول اومدم onClick ={ <Component />} نوشتم جواب نداد.

بعد آوردمش تو یه تابع کامپوننت رو Return کردم اون هم جواب نداد

یه جا دیدم از SetState استفاده شده اما متوجه نشدم .

از دوستانی که جواب میدن متشکرم.


ثبت پرسش جدید
overhack
تخصص : Web And Mobile Developer
@deathangelyou 4 سال پیش آپدیت شد
1

سلام
اگه منظورتون درست متوجه شده باشم یکی از راه حل ها اینه نمونه کد
https://codesandbox.io/s/clever-clarke-jl0mm

اگه به راه حل دیگه احتیاج داشتید بفرمایید تا راه حل های دیگر هم بیان کنم


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
Parastoo Ebrahimi
تخصص : front-end developer
@parastooebrahimi 4 سال پیش مطرح شد
1

سلام. همونطور که خودتون گفتین باید یه متغیر بولین رو توی استیت تعریف کنید که با کلیک کردن روی button به true تغییر وضعیت پیدا کنه و نمایش دادن کامپوننت رو منوط به این بکنین که اگه اون متغیر true هست نشون داده بشه.
کامپوننت اول :

import React, { useState } from 'react';
import SecondComponent from './secondComponent';
function FirstComponent(props) {
    const [showComponent, setShowComponent] = useState(false);
    return (
        <React.Fragment>
            <button
                onClick={() => setShowComponent(true)}
                className="btn btn-primary">show the second component</button>
            {
                showComponent ? <SecondComponent /> : null

            }
        </React.Fragment>
    )
}
export default FirstComponent;

کامپوننت دوم :

import React from 'react';
function SecondComponent(){
    return(
        <h1>this is a test from second component</h1>
    )
}
export default SecondComponent;

اگر از class base components استفاده میکنید کافیه به جای useState از setState استفاده کنید


sajjad
تخصص : برنامه نویس
@sajjad123 4 سال پیش مطرح شد
0

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

<Component />
<Component />
<Component />
<Component />

@deathangelyou
@parastooebrahimi


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

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