반응형
React.js - 속성 객체를 하위 구성요소로 전달하는 방법
내 컴포넌트는tileGroup
다른 속성의 컬렉션(배열)인 속성을 가집니다.
부모 컴포넌트(tileGroup
)는 컬렉션의 각 속성 세트를 사용하여 새 컴포넌트를 생성하여 하위 컴포넌트 목록을 렌더링합니다.
현재 세트부터 자 컴포넌트까지 각 속성을 개별적으로 매핑하고 있습니다만, 컴포넌트의 속성 카운트가 증가하면 이 작업은 번거로워집니다.또한 보다 깔끔하고 간단한 방법이 있을 것입니다.
각 속성을 다시 매핑하지 않고 전체 속성 집합을 하위 구성 요소에 전달하려면 어떻게 해야 합니까?
코드 예:
tileGroupData = {someProperty: 'something', someOtherProperty:'something',
tiles: [{vsize:1, hsize:2, etc...}, {vsize:2,hsize:3,title:'whatever'}]};
컴포넌트를 만듭니다.
var tileGroup = React.createClass({
render: function() {
var thechildren = this.props.tiles.map(function(tile)
{
//this is what I DON'T want to be doing.
return <tileSimple vsize = {tile.vsize} hsize = {tile.hsize} content = {tile.content}/>;
//what I DO want to be doing
return <tileSimple allTheProps = {tile}/>;
});
transfer Props To가 폐지된 것 같습니다.최신 버전의 React에서는 JSX 확산 속성을 사용할 수 있습니다.
return <tileSimple {...tile} />;
자세한 내용은 이쪽: transfer Props 폐지행선지
이러한 사용 사례에서 가장 쉬운 것은 JSX 대신 JS API로 폴백하는 것입니다.
return tileSimple(tile);
동작 이유를 이해하려면 JSX 컴파일러 도구(http://facebook.github.io/react/jsx-compiler.html )를 사용하여 생성된 버전의 버전을 확인하십시오.
<tileSimple vsize = {tile.vsize} hsize = {tile.hsize} content = {tile.content}/>;
tileSimple( {vsize: tile.vsize, hsize: tile.hsize, content: tile.content});
실제로 렌더링에서 다음 작업을 수행할 수 있습니다.
return this.transferPropsTo(<tileSimple />);
당신이 제안하는 것은
return <tileSimple allTheProps={tile} />;
정상적으로 동작합니다.
내부tileSimple
그런 다음 다음과 같은 구문을 사용하여 속성에 액세스할 수 있습니다.
var vsize = this.props.allTheProps.vsize;
var hsize = this.props.allTheProps.hsize;
언급URL : https://stackoverflow.com/questions/20913288/react-js-how-to-pass-properties-object-to-child-component
반응형
'programing' 카테고리의 다른 글
생산용 외부 컨테이너에 스프링 부트 내장 컨테이너 또는 전쟁 파일 (0) | 2023.03.18 |
---|---|
Typescript 매개 변수 이름에서 물음표는 무엇입니까? (0) | 2023.03.18 |
속성 탐색기처럼 작동하는 GUI 기반 또는 웹 기반 JSON 편집기 (0) | 2023.03.18 |
네이티브 응답 글꼴 크기 반응 (0) | 2023.03.18 |
MongoDB에서 $in 쿼리에 전달되는 파라미터의 최대 수는 몇 개입니까? (0) | 2023.03.13 |