2017-08-06 6 views
0

私はsocket.ioの中でデータを送信するときに更新するネイティブに反応内のリストを必要とする更新することが非常に遅いですリアクト私はすべて設定しているとしようとしている:。マイリアルタイム</p> <p>ネイティブリストは

  • のListView

  • FlatListや部品の

  • 私自身の基本的なJavaScriptの配列

リストは600で、データは動的である必要があります(約3回/秒のsocket.ioデータが入っていて、リストの対応するインデックスを更新します)。問題は、すべてをスクロールダウンして多くの速度を落として停止し、リストの更新が停止したときに発生します。

リストは、基本的に私の軽量コンポーネントの40以上を処理できません。リストを更新するためのよりよい方法がありますか?

トリックが正しくレンダリングされ、着信データに追いつくことができますか?

+0

listview/scrollviewの小道具で 'removeClippedSubviews = {true}'を設定しようとしましたか?私はそれがそのような大規模なアイテムの配列のパフォーマンスを向上させると信じています –

+0

ちょっとライアン、私はそれを試み、顕著な違いを見ませんでした。おそらく少し助けたかもしれない。迷惑なのは、普通のjavascript配列を作成し、すべての600データポイントをにレンダリングすることができるということです。アプリケーションはそのままで、socket.ioデータが取り込まれたインスタンスが画面に表示されます。しかし、私は子コンポーネント(これは超シンプルなコンポーネントです)の小道具としてこのデータを送信しようとすると、すべてが遅くなります。他のヒントがあれば助けになるでしょう。これで最後の14時間を費やしてどこにも行きませんでした。画面上に表示されているものだけを上か下にレンダリングする方法はありますか? – PurplePanda

+0

いくつかのコードを投稿できますか? (可能な限り最小限)。 removedClippedSubviewsのpropはそれを行い、画面上に表示されているアイテムのみをレンダリングします –

答えて

0

registerServiceWorker.jsが正しく設定され、サービスが意図したとおりに機能しているかどうかを確認したい場合があります。含めるindex.jsファイルを確認してください

import registerServiceWorker from './registerServiceWorker'; 
ReactDOM.render(<App />, document.getElementById('root')); 
registerServiceWorker(); 

どのように動作するかについてはhttps:// goo.gl/KwvDNyもご覧ください。

ファイル内のコメント:

// Our service worker won't work if PUBLIC_URL is on a different origin 
// from what our page is served on. This might happen if a CDN is used to 
// serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374 
関連する問題