راکت

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

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

ثبت پرسش جدید

پاسخ‌ها

3
محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

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

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

از

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

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

Parastoo Ebrahimi
Parastoo Ebrahimi
@parastooebrahimi

تخصص: front-end developer

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

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

Parastoo Ebrahimi
Parastoo Ebrahimi
@parastooebrahimi

تخصص: front-end developer

با این تغییر الان تقریبا کار میکنه. ولی وقتی یکی از 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())

                                }

لیست

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

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