私はホームコンポーネント、追加コンポーネント、リストコンポーネントからなる単純なアプリケーションを持っています。ホームコンポーネントには、一覧表示と追加コンポーネントがあります。コンポーネントを追加するには、いくつかのアイテムをローカルストレージに追加しています。リストコンポーネントでは、これらのアイテムを取得してリストとして表示しています。リストコンポーネントには小道具がありません。ローカルストレージから直接データを取得し、ulリストを返します。私が知りたかったのは、ローカルのストレージにデータを保存するときに、リストを更新する必要があるということです。つまり、保存ボタンをクリックすると何らかの方法でリスト項目をレンダリングする必要があります。更新リスト。状態を使用せずに手動で任意のコンポーネントのレンダリングメソッドをトリガできますか?反応するjs内のイベントの兄弟コンポーネントを更新する
0
A
答えて
0
があり、各要素は、ローカルストレージ
addItem(elm){
localStorage.yourArray.push(elm);
this.forceUpdate();
}
1
this.forceUpdate()は仕事に追加した後、これだけ、このメソッドを呼び出し、再レンダリングするthis.forceUpdate()
と呼ばれる方法であるが、ほとんどの場合、安価な修正ですあなたは避けたいものです。実際の保存のためのローカルストレージ、必要に応じて再レンダリングをトリガーする状態の2つの場所にリストを持つことができます。あなたのアプリは次のようになります:
constructor() {
super()
this.state = {
listings: []
}
}
componentWillMount() {
localStorage.getItem('listings')
this.setState({ listings })
}
saveListing(newListing) {
const listings = this.state.listings.concat([])
listings.push(newListing)
localStorage.setItem('listings', listings)
this.setState({ listings })
}
render() {
return(
<div>
<ul>
{
this.state.listings.map(listing => {
return(
<ListingComponent key={listing.id} listing={ ...listing } />
)
})
}
</ul>
<AddListingComponent addListing={(newListing) => this.saveListing(newListing)} />
</div>
)
}
関連する問題
- 1. 兄弟要素を変更するイベント
- 2. 兄弟兄弟CSSルールとリアクションスタイル付きコンポーネント/ CSSモジュール/ CSS-in-JS
- 3. コンポーネントを反応させる兄弟として "dangerouslySetInnerHTML"をレンダリングする
- 4. React?の兄弟のサイズに応じてコンポーネントのサイズを変更するには?
- 5. 兄弟のイベントをトリガする
- 6. 更新時に子コンポーネントのデータが次の兄弟コンポーネントに渡されます
- 7. 角2:兄弟コンポーネント間でイベントが発生する
- 8. データグリッド内の兄弟コンポーネント間でデータを共有する
- 9. コンポーネント内のコンポーネントがバニラJSと反応する
- 10. 兄弟コンポーネントを表示するreactJs
- 11. スクロール・ロードでjsイベントに反応する方法他のコンポーネント
- 12. ノックアウトで兄弟イベントを停止する
- 13. Vue.js - 兄弟コンポーネントから兄弟にイベントを送出する最も良い方法は?
- 14. 子コンポーネントを更新する子プロセスの反応時の反パターンエラー
- 15. レスキューアクションクリエイターをチェインする反応コンポーネント内のPromise.then()反応コンポーネント
- 16. 反応内のDOMツリー内の兄弟コンポーネントまたは他のコンポーネントの参照を取得するにはどうすればよいですか?
- 17. 特定の兄弟コンテンツに応じて兄弟の子供を得る方法
- 18. 反応し、ルータのアクティブリンクのハイライト兄弟ルートを
- 19. 兄弟コンポーネント内の関数を呼び出すReactjs
- 20. ローカル状態のオブジェクトの状態を、反応するjs内で更新する
- 21. vue.js内のvue-routerでの兄弟コンポーネントですか?
- 22. JS兄弟クラス間でのイベントの受け渡し
- 23. パッケージの反応が兄弟を満たしていない
- 24. 角2イベントを兄弟指示(コンポーネント)に送信
- 25. 反応コンポーネント内でjsコードを統合する
- 26. 兄弟構成要素への反応通過状態
- 27. 反応コンポーネント内の新しい行のCSS変更
- 28. 兄弟から始まるコンポーネントの@Input値を変更する方法
- 29. 兄弟コンポーネント間のVue共有状態
- 30. 兄弟コンポーネント間のデータ共有2
私はどのようにこのメソッドをaddコンポーネントから呼び出すのですか? – pKay
しかし、これはよく頻繁にトリガーできるアクションのための良い考えではありませんか?他の方法はありますか? –
@AyushGuptaええ、その良いアイデアではなく、迅速な修正。再レンダリングするための状態で配列を持つ方が良いです。私はコードで私の答えを編集してください見てください –