반응 가상화와 효소를 함께 사용할 수 있습니까? 함께 사용하려고 할 때 그리드에 항목 목록이 비어있는 것 같습니다.반응 가상화가 airbnb/효소와 작동합니까?
답변
2는 함께 작동해야합니다. 가능성이있는 문제는 반응 가상화 된 구성 요소에 너비 또는 높이 0이 주어져서 아무 것도 렌더링하지 못한다는 것입니다.
당신이 AutoSizer HOC를 사용한다고 가정하면 (대부분 사람들이하는 것), 내가 찾은 한 가지 유용한 패턴은 두 가지 버전의 구성 요소를 내보내는 것입니다. 하나는 명시적인 폭/높이 속성을 필요로하고 다른 하나는 AutoSizer로 래핑합니다. 의사 코드는 다음과 같습니다 내 테스트 케이스에서이 퍼팅
이import { AutoSizer, VirtualScroll } from 'react-virtualized'
// Use this component for testing purposes so you can explicitly set width/height
export function MyComponent ({
height,
width,
...otherProps
}) {
return (
<VirtualScroll
height={height}
width={width}
{...otherProps}
/>
)
}
// Use this component in your browser where auto-sizing behavior is desired
export default function MyAutoSizedComponent (props) {
return (
<AutoSizer>
({ height, width }) => (
<MyComponent
height={height}
width={width}
{...props}
/>
)
</AutoSizer>
)
}
내가 언급하는 것을 잊어 버린 한 가지. jsdom을 사용하여 node.js에서 효소를 사용하고 있습니다. AutoSizer는 실제 DOM 측정 API를 사용합니까? – camwest
그것은'getBoundingClientRect'와'getComputedStyle'에 달려 있습니다. 당신은 그것이 여기에있는 것들을 측정하는 방법을 볼 수 있습니다 : https://github.com/bvaughn/react-virtualized/blob/master/source/AutoSizer/AutoSizer.js#L93 – brianvaughn
좋습니다. 그렇다면 AutoResizer를 우회하는 것이 좋습니다. getBoundingClientRect는 jsdom에서 정확하지 않습니다. – camwest
나를 위해 일한 :
import { AutoSizer } from 'react-virtualized';
// ...
it('should do something', function() {
spyOn(AutoSizer.prototype, 'render').and.callFake(function render() {
return (
<div ref={this._setRef}>
{this.props.children({ width: 200, height: 100 })}
</div>
);
});
// do something...
는 여기 재스민의 spyOn를 사용하지만, 다른 라이브러리 함수를 덮어 자신의 방법이있다. 반응 가상화 라이브러리 (
this._setRef
)가 향후 소스 코드에서 변경되었을 때 매우 취약하기 때문에 오탐 (false positive)이 발생할 수 있습니다.
현재 9.12.0 반응 가상화는 defaultWidth
및 defaultHeight
속성을가집니다. 효소 테스트가 올바르게 실행되었다는 것을 발견했습니다. 예상대로 자식 행을 렌더링했습니다.
<AutoSizer disableHeight defaultWidth={100}>
{({ width }) => (
....
)}
</AutoSizer>
- 1. 가상화가 필요합니까?
- 2. 데이터 가상화가 작동하지 않습니다.
- 3. StackPanel에서 많은 컨트롤을 추가하면 UI 가상화가 적용됩니까?
- 4. ListBox 데이터 가상화가 적용되지 않습니다.
- 5. WPF : TreeView 가상화가 작동하지 않습니다.
- 6. 가상화가 적용된 ScrollIntoView 및 ListView
- 7. 반응 형 웹 디자인은 어떻게 작동합니까?
- 8. 하드웨어 가상화가 적용되지 않은 프라이빗 클라우드 스택
- 9. FS 가상화가 활성화 된 프로세스 만들기
- 10. WPF 목록 상자 가상화가 DisconnectedItems를 만듭니다.
- 11. 반응 형 디자인 : div를 반응 적으로 크기를 만들 때 높이가 0이고 패딩 하단이 왜 작동합니까?
- 12. 반응 네이티브 라이브러리의 함수에서 모듈 경로 확인이 어떻게 작동합니까?
- 13. Wi-Fi가없는 내 반응 네이티브 (Android 4.4) 앱에서는 어떻게 작동합니까?
- 14. 반응 형 반응 디자인
- 15. 반응
- 16. 반응 형 컨테이너의 반응 이미지?
- 17. Twitter Bootstrap 반응 형 반응
- 18. 반응 형 테마의 반응 iframe
- 19. Redux 비동기 반응 테스트 반응
- 20. HAXM을 설치하는 동안 가상화가 켜져 있는데도 오류가 계속 발생합니다.
- 21. WPF TreeView 가상화가 창에 추가 되 자마자 중단됩니다.
- 22. 다중 반응 루트 노드가있는 Redux
- 23. 반응 형 웹 페이지에 반응 형 콘텐츠
- 24. 반응 api 키 in 반응 webapp
- 25. 쿨 비디오 갤러리 반응 형 반응
- 26. 반응 레일로 미리 준비 반응 구성 요소
- 27. 반응 형 이미지 용 반응 컨테이너
- 28. h1 : {} 이전에 서재응이 작동합니까?
- 29. jQueryUI 템플릿 : 작동합니까, 작동합니까?
- 30. msdeploy --- 작동합니까, 아니면 작동합니까?
Grid에 너비와 높이> 0을 전달한다고 확신하십니까? (어떤 코드를 공유 할 수있는 기회가 있습니까?) – brianvaughn
간단한 예제를 만들어 보겠습니다. – camwest
저는 Autosizer를 사용하고있는 것이 문제라고 생각합니다. 조사를 계속할 것입니다 ... – camwest