У меня есть parent component
, где отображается список children
. Дети - литература Cards
и у каждого card
есть delete button
. Когда я нажимаю кнопку удаления, весь родитель и потомки снова отображаются, и поэтому вся страница обновляется. Итак, если я, например, нахожусь внизу списка литературных карточек (например, 900 литературных карточек) и удаляю последнюю литературную карточку, страница обновляется, и поэтому я нахожусь в начале страницы, а не в конце страницу (или где бы я ни был раньше). Это немного раздражает, потому что после удаления дочернего элемента мне приходится прокручивать всю страницу вниз.
Это в основном мой родительский код:
class ProjectLiterature extends Component {
constructor(props) {
super(props);
this.state = {
literatureEntries: [],
}}
getLiteratureEntries(){
axios.get(`http://127.0.0.1:5000/getLiterature`)
.then(res => {
const literatureEntries = res.data;
this.setState({ literatureEntries })
})
}
deleteLiteratureEntry(id) {
axios.delete("http://127.0.0.1:5000/deleteLiterature", {
params: {
id
}
})
.then(res => {
// get current literature entries after deleting one file
this.getLiteratureEntries();
})
.catch(error => {
console.log(error)
})
}
render() {
const literatureEntries = this.state.literatureEntries
return (
{ literatureEntries.map((literature, index) =>
return (
<Literature literature={literature} key={literature._id}
deleteLiteratureEntry={this.deleteLiteratureEntry.bind(this)}
project_name={this.state.projectName}/>
)
})
}
)}
, и это в основном мой дочерний компонент:
export default class Literature extends Component {
render() {
const literature = this.props.literature
return (
<Card>
<CardHeader>
{literature.title}
<Button className="float-right" onClick={() =>
this.props.deleteLiteratureEntry(literature._id}
</Button>
</CardHeader>
<CardBody>
...
</CardBody>
</Card>
)}}
Итак, есть ли что-нибудь, что я мог бы сделать, возможно, не снова отображается весь список?