これを行う最も簡単な方法は、Andrewが述べたように、デフォルトのpropをランダム値として設定することです。
設定されている場合、このデフォルトはオーバーライドされているため、説明したように動作します。
関数を使用してデフォルト値を設定する場合は、基本的に同じ割り当てです。
Component.defaultProps = {
someProp = fxnRandomValue()
}
EDIT:
すべてのインスタンスは、本当にこの小道具の値をランダム化することを確認するために、私はあなたがデフォルトで完全に小道具やコンポーネント内の割り当てを行うスキップ設定を示唆しています。例えば。
import { withState } from "recompose";
var enhance = withState("someProp", "updateSomeProp", (props) => props.someProp || randomValue());
var MyComponent = enhance(function(props) {
// This is your stateless component.
return <div>{props.someProp}</div>;
});
これは基本的に状態が含まれているラッパーコンポーネントを作成します。あなたはrecompose
ライブラリを使用する場合
const statelessComp = ({ prop }) => {
prop = prop || fxnRandomValue();
return (
...
)
}
'var value = props.value ||あなたの関数内のrandomValue(); '? –
@FelixKlingコンポーネントを再インスタンス化せずに小道具を変更することはできませんか?なぜなら、コンポーネントが再レンダリングされると、同じ値を使用したいからです。しかし、ステートレス機能コンポーネントが決して再レンダリングされない場合、それはうまくいくでしょう。 – mpen