티스토리 뷰
JSON 데이터 소스를 받아들이고 정렬 가능한 테이블을 생성하는 React 구성 요소를 만들고 있습니다.
각 동적 데이터 행에는 고유 키가 할당되어 있지만 여전히 다음 오류가 발생합니다.
배열의 각 자식에는 고유한 "키" 소품이 있어야 합니다.
TableComponent의 렌더링 방법을 확인하십시오.
내 TableComponent렌더링 메서드는 다음을 반환합니다.
<table>
<thead key="thead">
<TableHeader columns={columnNames}/>
</thead>
<tbody key="tbody">
{ rows }
</tbody>
</table>
구성 TableHeader요소는 단일 행이며 고유한 키도 할당되어 있습니다.
각 입력 은 고유 키가 있는 구성 요소에서 빌드됩니다 row.rows
<TableRowItem key={item.id} data={item} columns={columnNames}/>
그리고 TableRowItem다음과 같이 보입니다.
var TableRowItem = React.createClass({
render: function() {
var td = function() {
return this.props.columns.map(function(c) {
return <td key={this.props.data[c]}>{this.props.data[c]}</td>;
}, this);
}.bind(this);
return (
<tr>{ td(this.props.item) }</tr>
)
}
});
고유 키 props 오류의 원인은 무엇입니까?
각 자식 과 children 안의 각 요소 에 키를 추가해야 합니다 .
이런 식으로 React는 최소한의 DOM 변경을 처리할 수 있습니다.
코드에서 각각 <TableRowItem key={item.id} data={item} columns={columnNames}/>은 키 없이 내부의 일부 자식을 렌더링하려고 합니다.
이 예를 확인하십시오 .
div 내부의 요소 key={i}에서 제거를 시도 하고 콘솔을 확인하십시오.<b></b>
샘플에서 요소에 키를 제공하지 않고 만<b> 업데이트하려는 경우 React는 요소만 대신 전체 행을 다시 렌더링해야 합니다.object.city
코드는 다음과 같습니다.
var data = [{name:'Jhon', age:28, city:'HO'},
{name:'Onhj', age:82, city:'HN'},
{name:'Nohj', age:41, city:'IT'}
];
var Hello = React.createClass({
render: function() {
var _data = this.props.info;
console.log(_data);
return(
<div>
{_data.map(function(object, i){
return <div className={"row"} key={i}>
{[ object.name ,
// remove the key
<b className="fosfo" key={i}> {object.city} </b> ,
object.age
]}
</div>;
})}
</div>
);
}
});
React.render(<Hello info={data} />, document.body);
하단 에 @Chris 가 게시한 답변은 이 답변보다 훨씬 더 자세하게 설명되어 있습니다. https://stackoverflow.com/a/43892905/2325522 를 살펴보십시오.
'프로그래밍 > Front-End' 카테고리의 다른 글
| CSS를 사용하여 HTML5 input의 Placeholder 색상 변경 (0) | 2022.01.20 |
|---|---|
| css 텍스트 선택 강조 표시를 비활성화하는 방법 (0) | 2022.01.20 |
| npx와 npm의 차이점은 무엇입니까? (0) | 2022.01.20 |
| {this.props.children}에 props을 전달하는 방법 (0) | 2022.01.20 |
| React에서 이 세 개의 점은 무엇을 합니까? (0) | 2022.01.20 |
- Total
- Today
- Yesterday
- reactjs
- react
- go
- CSS
- JavaScript
- 주식투자
- 재테크
- ios
- 프로그래밍
- Java
- Frontend
- 개발자
- MacOS
- golang
- Spring
- Python
- SWiFT
- AI
- 생각
- 오리역
- 부동산
- 부동산분석
- Linux
- openai
- HTML
- 카카오톡
- Backend
- 카톡업데이트
- ChatGPT
- 내집마련
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |