React-Reduxアプリケーションでは、次のような状態になっています。
_state = {
items: [
{ id: 1, first_name: "John", last_name: "Smith", country: "us" },
{ id: 2, first_name: "Jinping", last_name: "Xi", country: "cn" },
]
}
_
Reactコンポーネントを使用してレンダリングします。
今、私は私に人の「フルネーム」を与える関数が必要です。したがって、「first_name + last_name」だけでなく、国によって異なります(たとえば、中国では「last_name + first_name」になります)。そのため、比較的複雑なロジックがあります。 Reactコンポーネント。
In OOPこの情報を提供するPerson::getFullName()
メソッドを作成しますが、state
オブジェクトはサブオブジェクトが「ダム」オブジェクトです特別なメソッドはありません。
それでは、React-Reduxでこれを管理する一般的な推奨方法は何ですか?私が考えることができるのは、ユーザーを取得してフルネームを返すuser_getFullName(user)
などのグローバル関数を作成することですが、それはあまりエレガントではありません。なにか提案を?
私のアプリケーションでは、このような場合にライブラリを作成するアプローチに従いますが、これまでのところ、これは非常にうまく機能しています。
この場合、私は新しいモジュールを作成する、例えば_{ComponentRoot}/lib/user.js
_は、状況に応じて、関数getFullName(user)
またはgetFullName(firstName, lastName, country)
をエクスポートします。
これは機能を必要とするモジュールをインポートするの問題であり、グローバル関数は不要です:
_import React from 'react'
import {getFullName} from '../lib/user'
const Title = ({user}) =>
<div>
{getFullName(user)}
</div>
_
ライブラリフォルダーをコンポーネントフォルダーなどと同じレベルに配置しますが、最適な方法はすべて実行する必要があります。
utils/
フォルダー: