は、propType定義をすべてのプロットロジックまたはプロペラが実際に使用されるプレゼンターのあるコンテナに配置する方が良いのだろうかと思っていました。私は両方の議論を見ることができます。PropTypeの場所のReduxのベストプラクティス
コンテナでは、すべてのプロロジックを1か所で追跡できます。 プレゼンターでは、それらが正しく使用されることを確認します。
ありがとうございます。明確にするために
更新
例えば、container.js
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import ButtonPresenter from './some/file';
const mapStateToProps = (store, props) => {
return ({
example: Number(5),
});
};
const mapDispatchToProps = (dispatch, props) => ({
onClick: id => { console.log(id) },
});
ButtonPresenter.propTypes = {
onClick: PropTypes.func.isRequired,
example: PropTypes.number.isRequired,
}
const ButtonContainer = connect(mapStateToProps, mapDispatchToProps)(BoxPresenter);
export default ButtonContainer;
プロ
すべてのロジックは
2つの異なる容器がプレゼンターで働くことができる1つの位置にあります
短所
プレゼンターが1で記述されたマップ
例えば、presenter.js
import React from 'react';
import PropTypes from 'prop-types';
const ButtonPresenter = ({example, onClick}) => {
return (
<button onClick={onClick}>{example}</button>
);
};
ButtonPresenter.propTypes = {
onClick: PropTypes.func.isRequired,
example: PropTypes.number.isRequired,
}
export default ButtonPresenter;
プロ
propTypesためだけ容器アレイによって知られていないタイプを必要とするかもしれませんプレゼンターを使用してすべてのための場所
短所
ないようflexable、propTypesはロジックとして見ることができ、その後ロジックは、コンテナおよびプレゼンター
私はreduxを追加しました。実際のコンポーネントはコンテナとプレゼンターの間で分割されています。私はこれがおそらく意見の問題だと思っていますが、 "コミュニティ"がどのように傾いているのかを見極めようとしています – user3243555
私は何かが足りないかもしれませんが、ルートコンポーネント(階層の上位)だから私はあなたがどこでそれを消費し、それに財産を渡すのか見ていない。要約すると、2番目のスニペットだけがわかります。コンポーネントのAPIはファイルに自己完結しており、_contract_をクリアしています。 https://www.eiffel.com/values/design-by-contract/ –