久しぶりにReact.jsで書くのでやり方をわすれつつあるので復習しながらやっていきます。create-react-appで行います。
import React, { useState, useEffect } from "react";
import { ReactDOM } from "react-dom";
function App() {
const [context, setContext] = useState(null);
useEffect(() => {
setContext(canvasContext);
if (context != null) {
canvasContext.strokeRect(0, 0, 100, 100);
} else {
console.log("contextは存在しません");
}
}, []);
return (
<div>
</div>
);
}
export default App;
ReactでCanvasを使う #JavaScript - Qiita
JavaScriptで図形を描画したい!canvasの基本とライブラリの活用方法 | 侍エンジニアブログ (sejuku.net)
これと同じようなことを、普通にReact Nativeでしようとするとできない。
なぜなら、React Nativeには、getElementByIdメソッドがないからである。
しかし⓵expo-2d-contextライブラリを使用したり(
②WebViewを作成してcanvasを配置する([Expo/ReactNative]WebViewでCanvasを使ってみる #reactnative - Qiita)
ことで可能になるようである。
⓵はそのページにもあるようにパフォーマンスに難あり。
②は、HTML文字列をブラウザで表示させるのだが、コーディングの際に、ESLintなどの修正機能が働かない(つまりスペルミスなどに気づきにくい)という難あり。
やはり、React Nativeでは、react-native-reanimatedを使用すべきなのだろう。