728x90
๋ฐ์ํ
Install
$ yarn add react-native-view-shot
Import
import ViewShot from 'react-native-view-shot';
Code
import ViewShot from 'react-native-view-shot';
function App() {
const ref = useRef();
const captureScreen = () => {
ref.current.capture().then((uri) => {
console.log('capture complete...', uri);
});
};
return (
<ViewShot
style={styles.container}
ref={ref}
options={{ fileName: 'Your-File-Name', format: 'jpg', quality: 0.9 }}
>
<TouchableOpacity onPress={captureScreen}> // ํ๋ฉด ์บก์ฒ๋ ๋ถ๋ถ์ ViewShot ์ปดํฌ๋ํธ๋ก ๊ฐ์ธ์ค๋คโโ
<Text> ํ๋ฉด ์บก์ฒ </Text>
</TouchableOpacity>
</ViewShot>
);
}
๐ก useRef
useRef๋ ํน์ ์ปดํฌ๋ํธ๋ฅผ ์ ํํ ๋ ์ฌ์ฉํ๋ hooks ํจ์์ด๋ค.
const ref = useRef(initialValue);
1๏ธโฃ useRef๋ .current ํ๋กํผํฐ๋ก ์ ๋ฌ๋ ์ธ์(initialValue)๋ก ์ด๊ธฐํ๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ref ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
2๏ธโฃ ๋ฐํ๋ ๊ฐ์ฒด๋ ์ปดํฌ๋ํธ์ ์ ์์ ์ฃผ๊ธฐ๋ฅผ ํตํด ์ ์ง๋๋ค.
3๏ธโฃ ์ผ๋ฐ์ ์ธ ์ ์ค์ผ์ด์ค๋ ์์์๊ฒ ๋ช ๋ น์ ์ผ๋ก ์ ๊ทผํ๋ ๊ฒฝ์ฐ์ด๋ค.
์ฐธ๊ณ ๋ฌธํ
https://github.com/gre/react-native-view-shot