필터는 작동하지만 간단히 es6 필터를 사용할 수는 있지만 문제는 원래 상태로 상태를 다시 설정하는 방법을 모르는 것입니다.반응식 필터가있는 테이블을 만들지 못했습니다.
일반적으로 데이터 소스는 API 호출이지만 사용자가 필터 입력에서 값을 삭제할 때 API 호출을 피할 수 있습니까?
const data = [
{
Id: "1",
FirstName: "Luke",
LastName: "Skywalker"
},
{
Id: "2",
FirstName: "Darth",
LastName: "Vader"
},
{
Id: "3",
FirstName: "Leia",
LastName: "Organa"
},
{
Id: "4",
FirstName: "Owen",
LastName: "Lars"
}
];
class App extends React.Component {
constructor() {
super()
this.state = {
data: data
}
}
filterId(e) {
const Id = e.target.value
if (Id) {
this.setState({
data: this.state.data.filter(v => v.Id === Id),
})
} else {
this.setState({
data
})
}
}
render() {
return (
<div style={styles}>
<table>
<th>Id <input type="number" onChange={e => this.filterId(e)} /></th>
<th>Name<input /></th>
{this.state.data.map((o, i) => {
return (
<tr>
<td>{o.Id}</td>
<td>{o.FirstName}</td>
</tr>
)
})}
</table>
</div>
);
}
}
https://codesandbox.io/s/oo22451v25
한 옵션 filteredData에서 originalData 데이터 업데이트를 필터링 항상 동일하다 회 (originalData, filteredData) 모두의 초기 값을 동일한 데이터를 저장하고있다. –
@MayankShukla 사실, 나는 그것을 얻었다 고 생각한다! –
샘플 예 : https://codesandbox.io/s/ko5yk719r, 이것이 원하는 것입니까? –