У меня длинная форма с более чем 80 полями ввода. После отправки он работает нормально и сохраняет данные в базе данных neo4j. Мне нужна функция «Сохранить черновик» на случай, если пользователи захотят заполнить форму позже. Как я могу это реализовать?
Редактировать:
Я пытаюсь сохранить данные формы (включая пустые поля ввода) в базе данных neo4j.
У меня есть массив и форма в конструкторе:
constructor(props){
super(props);
this.state = {
mydata: {
data1: {},
data2: {},
}
};
this.saveAsDraft = this.saveAsDraft.bind(this);
<form>
<MyInput
title="Name"
inputs={[{title: "name", inputType: "text" }]}
onChange={this.handleChange}
type="freeText"
/>
<MyInput
title="Email"
inputs={[{title: "email", inputType: "text" }]}
onChange={this.handleChange}
type="freeText"
/>
</form>
}
И я использовал следующий метод для обработки отправки формы:
async saveAsDraft(){
const name = this.state.mydata['data1']['name'];
const email = this.state.mydata['data1']['email'];
const neo4j = require('neo4j-driver')
const driver = neo4j.driver('bolt://localhost:7687', neo4j.auth.basic('neo4j', 'pass'))
const session = driver.session({database: 'neo4j'})
const txc = session.beginTransaction()
try {
const result = await txc.run(
'CREATE (:Person { name: $name, email: $email })',
{
name: name,
email: email
}
)
await txc.commit()
console.log('commited')
} catch (error) {
console.log(error)
await txc.rollback()
console.log('rolled back')
} finally {
await session.close()
}
}
Работает, когда поля ввода заполнены. Но когда поля ввода пусты, он показывает следующую ошибку:
Neo4jError: Expected parameter(s): name, email
Как я могу обрабатывать здесь пустые поля ввода? Я хочу выполнить зашифрованные запросы и создать узлы и отношения с пустыми входными значениями. Мне также нужно извлечь данные позже, чтобы заполнить их в форме, когда пользователь захочет продолжить редактирование формы позже.
1 ответ
Если требуется получить доступ к ответам формы с разных устройств или браузеров, вам придется сохранить данные в базе данных.
Если достаточно того, что пользователи могут получить доступ к сохраненным данным формы только в том же браузере, вы можете использовать локальное хранилище для этого. Некоторые библиотеки управления состоянием, такие как redux и mobxstate tree, предлагают функцию сохранения, поэтому вы можете сохранить все состояние вашего приложения в локальном хранилище с незначительной конфигурацией.
Похожие вопросы
Новые вопросы
reactjs
React - это библиотека JavaScript для создания пользовательских интерфейсов. Он использует декларативную компонентную парадигму и стремится быть одновременно эффективным и гибким.