Я пытаюсь разработать макет React, который выполняет следующие действия:
- представляет пользователя с календарем и флажками. (Уже сделано)
- Пользователь может выбрать дату и выбрать параметры из флажков. (Уже сделано)
- Пользовательский ввод будет записывать в массив следующую информацию (необходимо реализовать) - Дата - параметры, выбранные для этой даты
- Возможность повторного посещения (щелчка) даты с параметры и показать, какие поля были отмечены, и изменить ввод. (Необходимо реализовать)
Вот мой код:
import React, { Component } from 'react';
import './App.css';
import 'react-calendar/dist/Calendar.css';
import Calendar from "react-calendar";
import Checkbox from './components/Checkbox'
class App extends Component {
let sympt = [];
function {
if (sympt.includes(date)) {
// check boolean values in sympt to options & change if necessary
}
// append sympt to add new record
};
render() {
return (
<div>
<Checkbox />
<Calendar />
</div>
);
}
}
export default App;
checkbox.js
class Checkbox extends Component {
constructor() {
super();
this.state = {
categories: [
{id: 1, value: "Symptom 1"},
{id: 2, value: "Symptom 2"},
{id: 3, value: "Symptom 3"},
{id: 4, value: "Symptom 4"}
],
checkedItems: new Map()
};
this.handleChange = this.handleChange.bind(this);
}
handleChange(event) {
var isChecked = event.target.checked;
var item = event.target.value;
this.setState(prevState => ({ checkedItems: prevState.checkedItems.set(item, isChecked) }));
}
render() {
return (
<div>
<h1>Add Notes to Calendar</h1>
<form onSubmit={this.handleSubmit}>
{
this.state.categories.map(item => (
<li>
<label>
<input
type="checkbox"
value={item.id}
onChange={this.handleChange}
/> {item.value}
</label>
</li>
))
}
</form>
</div>
);
}
}
export default Checkbox;
Календарь использует react-calendar
Вот что представлено: Календарь и параметры
Я не понимаю, как это сделать:
- Записывать данные в массив в стандартизированном формате. Я хочу записывать в массив только после того, как выбран параметр, а не только когда выбрана дата.
- Проверьте массив, чтобы увидеть, есть ли к дате уже прикрепленные параметры, и «повторно отметьте» эти поля.
- Изменить существующие данные в массиве.