Parastoo Ebrahimi
5 سال پیش توسط Parastoo Ebrahimi مطرح شد
3 پاسخ

حذف اولین آیتم آرایه

من میخوام react checkbox tree رو سینگل سلکت کنم به خاطر همین میام اولین آیتم آرایه ی مربوط به کلیک که توی استیت تعریفش کردم رو حذف می کنم. وقتی کلیک میکنم روی یه checkbox دیگه آرایه خالی میشه و باید یه بار دیگه کلیک کنم تا ایندکس اونو بزاره داخل array. مشکل کدم کجاس که با همون یک کلیک این کار رو انجام نداد؟

<CheckboxTree id="sidebarTree"

                            nodes={storeNodes}
                            checked={this.state.checkedStore}
                            expanded={this.state.expandedStore}

                            onCheck={(checked) => 

                                {
                                    this.state.checkedStore.length>0 ?
                                    this.setState({
                                        checkedStore: this.state.checkedStore.slice(1),

                                    })

                                    : this.setState({ checkedStore: checked, isLoading: true ,currentPage:1}, () => this.handleCheck())

                                }

                            }

@hesammousavi
@mohsenbostan


ثبت پرسش جدید
محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
0

@parastooebrahimi
سلام.
به جای

checkedStore: this.state.checkedStore.slice(1),

از

checkedStore: this.state.checkedStore.shift(),

استفاده کنید.


Parastoo Ebrahimi
تخصص : front-end developer
@parastooebrahimi 5 سال پیش مطرح شد
0

همین کار رو کردم. هیچ اروری نمیده ولی میره داخل یه صفحه سفید و گیر میکنه
@mohsenbostan


Parastoo Ebrahimi
تخصص : front-end developer
@parastooebrahimi 5 سال پیش آپدیت شد
0

با این تغییر الان تقریبا کار میکنه. ولی وقتی یکی از store ها رو انتخاب میکنی دیگه روی استور های قبلش نه کلیک میشه نه نمایش میده. دیباگ که گرفتم دیدم اونایی که ایندکسشون از چیزی که الان کلیک شده کوچیکتر باشه به توی ایندکس 0 ذخیره میکنه و من هم توی کدم گفتم که ایندکس 0 رو حذف کنه در نتیجه آیتم های قبل تر از خودش نمایش داده نمیشه. الان چجوری این مشکل رو حل کنم؟ @mohsenbostan

<CheckboxTree id="sidebarTree"

                            nodes={storeNodes}
                            checked={this.state.checkedStore}
                            expanded={this.state.expandedStore}

                            onCheck={(checked) => 

                                {
                                    debugger
                                    this.state.checkedStore.length !==0 ?

                                    this.setState({
                                      checkedStore: checked.slice(1),
                                      isLoading: true ,
                                      currentPage:1,

                                    },  () => this.handleCheck())

                                    :  this.setState({ checkedStore: checked, isLoading: true ,currentPage:1}, () => this.handleCheck())

                                }

لیست


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

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