راکت

create attribute در جاوا اسکریپت و Reactjs

10 پاسخ

سلام دوستان
وقتی از createAttribute برای اضافه کردن onChange استفاده می کنم تابعی که بهش پاس میدم رو تو صفحه این طوری میزنه

<input type="text" name="answer[]" class="form-control" value="fghfghfgh" onchange="function () { [native code] }">

در صورتی که همین رویداد رو در فضای JSX بهش دادم درست کار می کنه و اصلا تو Inspect نشون هم نمیده.

مجبورم از متد اول استفاده کنم چون المنت بالا رو با یه دکمه اضافه می کنم.

sajjad
sajjad
@sajjad123
ثبت پرسش جدید

پاسخ‌ها

10
saman
saman
@saman1111

منظورتونو نمیفهمم
کد JSXتون رو بزارید ببینم چطوریه

sajjad
sajjad
@sajjad123

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

اینطوری درست جواب میده

<button type="button" className="btn btn-success fas fa-plus-square" onClick={this.newAnswer} />

اما اینطوری کار نمی کنه

 let att5_input2=document.createAttribute("onChange");
 att5_input2.value=this.handleChange;
input2.setAttributeNode(att5_input2);

@saman1111

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

saman
saman
@saman1111

@sajjad.haghani
خب توی react شما این کارو نباید انجام بدید
دقیقا میخواین چیکار کنین تا راهنماییتون کنم ؟

sajjad
sajjad
@sajjad123

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

من یه صفحه دارم که کاربر میاد سوالات چهار گزینه ای وارد و ثبت می کنه
حالا می خوام اگر پس از اینکه گزینه ها رو اضافه کرد تغییراتی روی Textbox ها ایجاد کرد این تغییرات در مقدار چک باکس هم تغییر کنه چون تو بک اند داره مقدار چک باکس رو با مقدار تکست باکس مقایسه می کنه. من سعی کردم رویداد onChange هم ست کنم که نتونستم.

این لینک کدی که نوشتم
@saman1111

saman
saman
@saman1111

خب وقتی که تکست باکس مقدارش تغییر کرد در واقع استیت هم تغییر میکنه دیگه
شما مقدارشو توی استیت دارین. از اون میتونین هرجا که میخواین استفاده میکنین

sajjad
sajjad
@sajjad123

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

فکر می کنم اگه واسه یه گزینه بود حرف شما درست میشد .
اما چهار گزینست شایدهم کمتر یا بیشتر بشه
اونموقع یکم سخت میشه
@saman1111

saman
saman
@saman1111

@sajjad.haghani
شما باید هر کدوم از اون گزینه ها رو یه کامپوننت در نظر بگیرین، و توی کامپوننت استیت رو قرار بدین.
اینطوری هر کامپوننتی استیت خودش رو داره.

البته من درست نفهمیدم دقیقا باید چه کاری انجام بده و مشکل برنامه کجاست

sajjad
sajjad
@sajjad123

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

درسته ، الان اومدم گزینه رو در کامپوننت دومی گذاشتم و در کامپوننت اول کاربر هرچندبار دکمه add رو کلیک میکنه همون چندبار کامپوننت دومی اضافه میشه تو یه لیست آرایه که داخل استیت قرار داره.
و خیلی خوب کار می کنه.
حالا من در کامپوننت دومی یه دکمه دیلت گذاشتم که بزنیم باید گزینه رو پاک کنه که اینجا در واقع باید اون کامپوننت خاص از بین کامپوننت ها در لیست آرایه پاک بشه.
اگه ایده ای دارین خوشحال میشم.
@saman1111

saman
saman
@saman1111

@sajjad.haghani
وقتی دلیت کردن از اون آرایه باید پاک بشه.
یه تابع برای دکمه دلیت بنویسید که این کارو انجام بده

sajjad
sajjad
@sajjad123

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

می دونم باید تابع بنویسم
اینکه به چه شکل بنویسم سواله.

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

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