#reactjs
#reactjs
Вопрос:
Я хочу очистить список добавленных разделов, нажав кнопку ОЧИСТИТЬ, кнопка ДОБАВИТЬ работает с дублирующим div, но я не знаю, как понять, как должна работать кнопка ОЧИСТИТЬ.
import React from "react";
import ChildComponent from "./ChildComponent";
import ParentComponent from "./ParentComponent";
class A extends React.Component {
state = {
numChildren: 0
}
render () {
const children = [];
for (var i = 0; i < this.state.numChildren; i = 1) {
children.push(<ChildComponent key={i} number={i} />);
};
return (
<ParentComponent addChild={this.onAddChild}>
{children}
</ParentComponent>
);
}
onAddChild = () => {
this.setState({
numChildren: this.state.numChildren 1
});
}
}
export default A;
import React from "react";
const ChildComponent = props => <div>{"I am child " props.number} </div>;
export default ChildComponent;
import React from "react";
import {Button} from '@material-ui/core';
import AddIcon from "@material-ui/icons/Add";
const ParentComponent = props => (
<div className="card calculator">
<Button href="#" onClick={props.addChild} >
<AddIcon />
ADD
</Button>
<Button href="#" >
CLEAR
</Button>
<div id="children-pane">
{props.children}
</div>
</div>
);
export default ParentComponent;
введите описание изображения здесь
Я хочу очистить список добавленных разделов, нажав кнопку ОЧИСТИТЬ, кнопка ДОБАВИТЬ работает с дублирующим div, но я не знаю, как понять, как должна работать кнопка ОЧИСТИТЬ.
Ответ №1:
Ваша кнопка очистки должна просто установить значение numChildren равным 0.
Добавьте это в свой класс A:
clearChildren = () => {
this.setState({
numChildren: 0
})
}
передайте этот метод ParentComponent
<ParentComponent addChild={this.onAddChild} clearChildren={this.clearChildren}>
{children}
</ParentComponent>
назначьте это кнопке ОЧИСТИТЬ
<Button href="#" onClick={props.clearChildren}>
CLEAR
</Button>
Ответ №2:
в компоненте обновить реквизиты
<ParentComponent addChild={this.onAddChild} removeChilds={this.onRemoveChilds} {children}</ParentComponent>
и добавить функцию удаления
onRemoveChilds = () => {
this.setState({
numChildren: 0
});
};
Затем в ParentComponent
<button href="#" onClick={props.removeChilds}>
CLEAR
</button>