問題タブ [mobx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3032 参照

reactjs - mobx with react store not reflected in observer

As with all things react I'm trying to do something simple and I'm guessing I'm missing some obvious configuration wise all I'm trying to do is take a redux app and implement mobx.

My issue is that I trying to go to the route /user/12345

The store is being called - I am getting data back from the API but I'm getting a few exceptions the first is from mobx

Then as is somewhat expected a null value is blowing up in the presenter because the store is not yet loaded

Then in the store itself because of the returned api/promise where my user is being set a mobx exception

I have added @action to the store function that is calling the api so I'm not sure what I've got messed up - and before I bubble gum and hodge podge a fix I would rather have some feedback how to do this correctly. Thanks.

UserStore.js

index.js

routes-mob.js

MobApp.js

.component/userdetail/index.js (container?)

.component/userdetail/presenter.js

Forgive me if its a little messy its what I've pieced together for how to implement mobx from various blog posts and the documentation and stack overflow questions. I've had a hard time finding a soup-to-nuts example that is not just the standard todoapp

UPDATE

Basically the fix is a combination of @mweststrate answer below adding the action to the promise response

}

and including a check in the presenter that we actually have something to display

0 投票する
2 に答える
449 参照

mobx - MobX - 配列内の単一の項目を選択し、他のすべての項目を選択解除しますか?

次の観測可能な検索エンジンの配列があります。

ユーザーは、UI から一度に 1 つだけ選択できる必要があります。yahooたとえば、彼らが選択した場合、yahooは取得selected: trueし、他のプロバイダーは取得しますselected: false

このアクションはクリックを処理します。

0 投票する
1 に答える
410 参照

reactjs - MobX が追加のみのドメイン モデルを持つアプリケーションに適していないのはなぜですか?

MobX の作成者である Michel Westrate 氏は、次のように述べています。

MobX は、状態モデルで CRUD のような操作を実行する必要があるアプリの構築に適しています。追加のみのドメイン モデルを持つアプリケーションにはあまり適していません。

私の理解が正しければ、「追加のみのドメイン モデル」とは、継続的に追加されるデータのフィード/リストで構成されるアプリ (Facebook など) を指す場合があります。

「追加のみのドメイン モデル」とはどういう意味ですか? MobX がそれに適していないのはなぜですか?

0 投票する
1 に答える
497 参照

javascript - 配列の要素を削除すると、複数の再レンダリングが発生します

MobX の観測可能な配列があり、複数の要素を lodash のremoveで削除したいと考えています。これにより、配列内のすべての要素が再レンダリングされます。

のすべての出現を削除しようとすると1Rendering...要素ごとに 1 回ログに記録されます。

一度だけ再レンダリングするようにするにはどうすればよいですか?

0 投票する
1 に答える
619 参照

ruby-on-rails - mobx-react からオブザーバーをインポートすると、「Uncaught TypeError: Super expression must be either null or a function, not undefined」が発生する

rails プロジェクトでrails-browserifyを使用して、reactJS アプリケーションをコンパイルしています。

ノードの package.json ファイルは次のようになります。

ただし、いつでもimport { observer } from 'mobx-react'、私は

キャッチされていない TypeError: スーパー式は、未定義ではなく、null または関数のいずれかでなければなりません

これは、インポートした他のライブラリでは発生しません。reactmobxreact-domすべて正常にインポートされます。他に詳細が必要な場合はお知らせください。どんな助けでも大歓迎です。私は本当にここで困惑しています。

問題のモジュールはそのように見えます。コンポーネントでmobx-reactをまだ使用しておらず、インポートしただけです。エラーをトリガーするのは import { observer } 行です。

0 投票する
2 に答える
339 参照

reactjs - コンポーネントを分割するときは dom コンテナ要素を避ける

私はreactを使用しており、コンポーネントをサブコンポーネントに分割して最適化したいと考えています(私はmobXを使用しており、リストの例として何かを達成しようとしていますhttps://mobxjs.github.io/mobx/best/react-performance. html )

しかし、そうすることで、余分な dom 要素を導入せざるを得なくなったようです。ツリーをレンダリングする NodeComponent を検討してください

これは疑似コードです。理解していただければ幸いです。

(以下の div のように) 子の周りに追加のラッパー dom 要素を導入せずに、最初の内部 div を再帰レンダリングから分離するにはどうすればよいですか?

何千ものノードがある場合、それは何千もの追加の役に立たない dom 要素を意味し、さらに、特定の dom 構造と CSS を使用して既存のコントロールを移植しており、それらを分割したい場合はそれを変更する必要があります。

TL;DR; このコンポーネントを 2 つに分割して、DOM 出力を変更せずに、不要なときにすべての子を再レンダリングしないという mobx の最適化を取得できますか?

または、もう一度: 純粋な最適化/リファクタリングによって、dom の最終結果を変更する必要があるのはなぜですか?

0 投票する
2 に答える
4306 参照

javascript - MobX 非同期反応

こんにちは、私はストアで MobX を使用しており、計算値が変更されたときに非同期反応が必要です。

実行中の状態とは別に、when代わりに使用すると、ここで何が違うのだろうと思っていましたか?reaction

0 投票する
1 に答える
1355 参照

listview - React Native ListView を MobX で使用するには?

次のように、MobXの監視可能な配列を使用して、ネイティブに反応するListViewを作成しようとしています。

しかし、コードを実行すると、renderRow() が呼び出されることはありません。cloneWithRows() メソッドが行を複製する方法を知らなかったようです。

誰かがこれを行うことに成功しましたか? (また、犬のリスト内の犬の名前が変更されたときに、リスト内のセルが再レンダリングされるように動作させることもできます)

更新: 詳細はこちらhttps://github.com/mobxjs/mobx/issues/476