من میخوام 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())
}
}
@parastooebrahimi
سلام.
به جای
checkedStore: this.state.checkedStore.slice(1),
از
checkedStore: this.state.checkedStore.shift(),
استفاده کنید.
با این تغییر الان تقریبا کار میکنه. ولی وقتی یکی از 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())
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟