راکت
حل شده

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

4 پاسخ

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

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

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

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

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

ثبت پرسش جدید

پاسخ‌ها

4
overhack
overhack
@deathangelyou

تخصص: Web And Mobile Developer

بهترین پاسخ

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

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

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

Parastoo Ebrahimi
Parastoo Ebrahimi
@parastooebrahimi

تخصص: front-end developer

سلام. همونطور که خودتون گفتین باید یه متغیر بولین رو توی استیت تعریف کنید که با کلیک کردن روی 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
sajjad
@sajjad123

تخصص: برنامه نویس

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

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

@deathangelyou
@parastooebrahimi

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

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