繁体   English   中英

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

[英]Pass string value as object to Redux component with PropTypes in React

index.js中创建了一个使用来自React Final Form的 Redux示例的组件。

<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)
};

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

UPDATE

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

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
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM