راکت
Parastoo Ebrahimi
Parastoo Ebrahimi
توسط 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
@mohsenbostan6 سال پیشمطرح شد
0

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

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

از

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

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


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

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


Parastoo Ebrahimi
Parastoo Ebrahimi
تخصص :front-end developer
@parastooebrahimi6 سال پیشمطرح شد
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())

                                }


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

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