Реагировать на состояние ребенка против реквизита - PullRequest
0 голосов
/ 14 декабря 2018

Я изучал реквизит и состояние 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"),
            }
        ],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...