Я изучал реквизит и состояние React и сейчас использую Redux.Я пытался выяснить, как сохранить мои компоненты для повторного использования, и у меня возникла проблема с определенным компонентом.
По сути, он работает как gmail с флажками сбоку, и функции отображаются в зависимости от того, что выбрано, вы также можете передавать кнопки для отображения функций.Однако у меня проблема с выборами.Поэтому, чтобы компонент работал правильно, у меня должен быть выбранный атрибут, но я не хочу, чтобы этот атрибут был в подпорках, потому что он относится только к этому компоненту, все остальное будет в подпорках.Как мне справиться с этим, потому что я знаю, что вы не должны менять реквизиты внутри компонента?
Ниже приведен пример, если я использую только состояние и его нельзя использовать повторно:
this.state = {
selectAll: false,
list: [
{
id: 1,
description: "Description 1",
selected: false
},
{
id: 2,
description: "Description 2",
selected: true
},
{
id: 3,
description: "Description 3",
selected: false
},
],
listDetails: {
start: 1,
end: 50,
currentPage: 1,
lastPage: 2,
},
toolbarActions: [
{
icon: "edit",
useOnMultiple: true,
use: true,
handleFunctionSingle: this.handleActionsFunction.bind(this, "Edit Single"),
handleFunctionMultiple: this.handleActionsFunction.bind(this, "Edit Multiple"),
},
{
icon: "trash",
useOnMultiple: true,
use: true,
handleFunctionSingle: this.handleActionsFunction.bind(this, "Delete Single"),
handleFunctionMultiple: this.handleActionsFunction.bind(this, "Delete Multiple"),
}
],
}
Так что с этимНапример, все будет передано, за исключением состояния selectAll и выбранного в объектах списка.
Это будет реквизит, переданный в
list: [
{
id: 1,
description: "Description 1",
},
{
id: 2,
description: "Description 2",
},
{
id: 3,
description: "Description 3",
},
],
listDetails: {
start: 1,
end: 50,
currentPage: 1,
lastPage: 2,
},
toolbarActions: [
{
icon: "edit",
useOnMultiple: true,
use: true,
handleFunctionSingle: this.handleActionsFunction.bind(this, "Edit Single"),
handleFunctionMultiple: this.handleActionsFunction.bind(this, "Edit Multiple"),
},
{
icon: "trash",
useOnMultiple: true,
use: true,
handleFunctionSingle: this.handleActionsFunction.bind(this, "Delete Single"),
handleFunctionMultiple: this.handleActionsFunction.bind(this, "Delete Multiple"),
}
],