現在動画のコントローラを作っており、中にスライダー機能があります。
スライダーを移動させると現在の秒数も変わるのですが、高速で移動させると秒数変更にラグがでます。
しかし、console.log
では高速でスライダーを移動させても秒数変更にラグが出ていません。
秒数の変更はRedux
のAction
を使っており、恐らくスライダーを移動させるたびにレンダリングが走るため処理が重くなるのだと思っています。
どうすればconsole.logで出力される速さでViewに描画させられるでしょうか?
コードと解説については以下の通りです。
コードと解説
スライダーは@react-native-community/sliderというライブラリーを使っています。
onValueChange
というイベントでスライダーが移動された時の情報を取得しています。
つまり、現在の秒数を変更するコードはonValueChange={value => changeCurrentTime(value)}
という感じになります。
コードは以下の通りです。
function unifiedValueChange(value: number) { changeCurrentTime(value); //ここのコードが原因 console.log(value); //changeCurrentTime(value);をコメントアウトしてconsole.logのみだと同じスピード } ..略 <Slider style={{ width: '50%', transform: [{ scaleY: 0.8 }], }} minimumValue={0} maximumValue={movie?.duration_second} minimumTrackTintColor="#4169e1" maximumTrackTintColor="#ddd" thumbTintColor="#4169e1" onSlidingStart={unifiedOnSlidingStart} onValueChange={unifiedValueChange} onSlidingComplete={unifiedOnSlidingComplete} step={movie?.duration_second / 10} value={currenttime} />
詳しい方、ご教示いただけると幸いです。
どうかよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。