์๋ ํ์ธ์,
๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ์๋ชป ์ดํดํ์ ์๋ ์์ง๋ง ์ด๋ค ์ด์ ๋ก ref
๊ทธ๋ ๊ฒ ์ฌ์ฉํ ๋
<Document
file={file}
onLoadSuccess={this.onDocumentLoadSuccess}
ref={node => console.log(node)}
>
....
๋ค์ ์ถ๋ ฅ์ด ์ธ ๋ฒ ํ์๋ฉ๋๋ค.
๊ธ์, ๋๋ ref
๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ง์์ ๋ ๋๋ง ๋ ์์น (offsetTop, offsetLeft ๋ฑ)๋ฅผ ๊ฐ์งํ๊ณ ref
์ฌ์ฉํ๋ ๊ฒ ์ธ์๋ ์ป์ ์์๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์ผ๋ฏ๋ก ๋ด ์ง๋ฌธ์ ์ธ ๋ฒ ๋ถ๋ฌ๋ ๊ด์ฐฎ์?
๋ด ์ค์ ์์์๋ ํด๋ผ์ด์ธํธ ์ธก์์ ํ์ผ์ ๋ก๋ํ์ง๋ง ์ฌ์ ํ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.(
์ถ์ ์ฝ๋๋ ์ ์ฅ์์ sample
ํด๋์์ ๊ฐ์ ธ์ต๋๋ค.
์๋
ํ์ธ์ @nnnikolay ,
์, ์ด๊ฒ์ ๋ชจ๋ ๊ตฌ์ฑ ์์(์์๊ฐ ์๋ ๊ตฌ์ฑ ์์) React ์
๋ฐ์ดํธ์ ์์ ํ ์ ์์ ์ธ ๋์์
๋๋ค.
๊ฒ๋ค๊ฐ Document
์ปดํฌ๋ํธ์ ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ง๊ฐ ๋ ๋๋ง๋์๋์ง ํ์ธํ๋ ๊ฒ์ ๋งค์ฐ ๋์ ์๊ฐ์
๋๋ค.
๋ด๊ฐ ์ถ์ฒํ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์ฑ๊ณต์ ์ธ ๋ ๋๋ง์ ์์ ํ๋ ค๋ Page
๊ตฌ์ฑ ์์์ ๋ฐฐ์น๋ onRenderSuccess
์ํ ์ฝ๋ฐฑ์
๋๋ค.
inputRef
prop์ Page
๊ตฌ์ฑ ์์์ ์ถ๊ฐํ๋ฉด ref
๊ธฐ๋ฅ์ด Page
๊ตฌ์ฑ ์์์ ์ํด ๋ ๋๋ง๋ ๋ฃจํธ div ์์์ ์ ๋ฌ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ฐฉ๋ฒ์ 3.0.0๋ถํฐ Page
๋ฃจํธ div๊ฐ ์ด์ ๋ณด๋ค ์ผ์ฐ ๋ํ๋ ํ์ด์ง๊ฐ ๋ก๋/๋ ๋๋ง ์ํ์ผ ๋ ์คํ์ผ์ ์ฝ๊ฒ ์ง์ ํ ์ ์์ผ๋ฏ๋ก ๊ถ์ฅํ์ง ์์ต๋๋ค.
๋ต์ฅ๊ณผ ์์ด๋์ด์ ๋ํด @wojtekmaj ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. onRenderSuccess
๋ ์ธ์๋ฅผ ์ทจํ์ง ์์ผ๋ฏ๋ก ์ด ์ฝ๋ฐฑ์์ Page
DOM ๋
ธ๋ ์์น๋ฅผ ์ฐพ์ ์ ์๋์ง ๋ช
ํํ์ง ์์ต๋๋ค. ํ์ด์ง์์ ๊ทํ์ ์กฐ์ธ์ ๋ฃ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ inputRef
๋ ๊ด์ฐฎ์ต๋๋ค. ํ์ด์ง์์ <div>
๊ฐ ๋ ๋๋ง๋๋ ์์น(์๋จ ๋ฐ ์ผ์ชฝ ์ขํ)๋ฅผ ์์์ผ ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
์, ๋ง์. onRenderSuccess๋ ์ค์ ๋ก ๋ ๋๋ง์ ๋ํ ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค.
ํ์ฌ ๋ค์๊ณผ ๊ฐ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ํํ ์ ์์ต๋๋ค(๊ฐ๋ ์ฑ์ ์ํด ๋จ์ํ๋ ์ฝ๋).
const pageNumber = 1;
return (
<Document>
<Page
pageNumber={pageNumber}
onRenderSuccess={() => doSomething(pageNumber)}
/>
</Document>
);
๊ทธ๋ฌ๋ ๋๋ ๊ทธ๊ฒ์ ๋ํด ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ์ฝ๋ฐฑ ๊ธฐ๋ฅ์ ๋ํ ๊ฐ์ ์ฌํญ์ด 3.0์ฉ ๋ชฉ๋ก์ ํฌํจ๋์์ต๋๋ค! :)
๊ฐ์ ์ฌํญ์ ๋ฐฉ๊ธ ๋ณํฉ๋์์ผ๋ฉฐ ๋ค์ด์ค๋ v3.0.0-alpha.3์์ ์ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.