将字符串值作为对象传递给 Redux 组件,并在 React 中使用 PropType



使用 React Final Form 中的 Redux 示例的组件是在 index.js 中创建的。

<FormStateFromRedux valueName="valueString" form="counter" />

它使用 redux 来跟踪值,使用它应该接收对象名称以返回确切的对象值prop-types

const FormStateFromRedux = ({ state, valueName }) => (
  <p>{state.values.valueName}</p>
)
export default connect((state, ownProps) => ({
  state: getFormState(state, ownProps.form)
}))(FormStateFromRedux)
 FormStateFromRedux.propTypes = {
  valueName: PropTypes.objectOf(PropTypes.string)
};

手动设置对象路径时可以返回值,在这里我想使可重用的组件使用 PropType 返回值,但不知道选择哪种类型。是否可以将值作为字符串传递?有人知道在这种情况下应该采取正确的方法吗?

更新

可以使用[]获取对象内部的字符串值

const FormStateFromRedux = ({ state, valueName }) => ( <p>{state.values[valueName]}</p> )

应避免将整个窗体状态传递给组件。组件应该只有必要的道具。

const FormStateFromRedux = ({ valueName }) => ( <p>{valueName}</p> );
export default connect((state, props) => {
  const formState = getFormState(state, props.form);
  const { value : { valueName } } = formState;
  return { valueName };
})(FormStateFromRedux);
FormStateFromRedux.propTypes = {
  valueName: PropTypes.string
};

相关内容

  • 没有找到相关文章