Пользовательский компонент React-Admin - PullRequest
1 голос
/ 05 марта 2020

Я пытаюсь создать пользовательский компонент для редактирования / создания в реакции администратора. Проблема, с которой я сталкиваюсь, заключается в том, что новое обновленное значение не берется, мой компонент выполняет добавление и удаление значений из ChipArray со значениями из выпадающего списка. Выберите

render() {
        return (
            <React.Fragment>
                <Paper>
                    {this.state.scopes.map((item, key) => {
                        return (
                            <Chip
                                key={key}
                                label={item.description}
                                onDelete={(e) => this.handleDelete(e, item)}
                            />
                        )
                    })}
                </Paper>

                <div>
                    <button onClick={(e) => this.displayChoices(e)}>
                        {this.state.show ? <span>Hide Scopes Select List</span> : <span>Show Scopes Select List</span>}
                    </button>
                    <div/>
                    {this.state.show ? <Field name="scope" component="Select" placeholder="Spaces"
                                              onChange={(e) => this.handleAdd(e)}>
                        {this.state.data.map((option, index) =>
                            <option key={index} value={JSON.stringify(option)}>
                                {option.description}
                            </option>
                        )}
                    </Field> : ''}
                </div>
            </React.Fragment>
        )
    }
}

Мне удалось удалить и добавить в ChipArray, но когда я сохраняю изменения не были приняты, вот функции удаления и добавления:

handleAdd = (e) => {
        e.preventDefault();
        const value = JSON.parse(e.target.value);
        let selectedScopes = this.state.scopes;
        if (selectedScopes.filter(s => (s.id === value.id)).length === 0) {
            selectedScopes.push(value);
            this.setState({scopes: [...selectedScopes]});
        }
    };
 handleDelete = (e, value) => {
        e.preventDefault();
        const selectedScopes = this.state.scopes;
        this.setState((prevState, props) => {
            return {scopes: prevState.scopes.filter(scope => scope !== value)};
        })
    };

Я знаю, что я должен использовать <Field/> из "Reaction-Final- форма ", но я не уверен, как или где. Очень жаль, если этот вопрос задавался раньше, но я посмотрел онлайн, и мне не повезло, и я застрял на этом. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...