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

标签 javascript reactjs react-redux redux-form react-final-form

使用 Redux example 的组件来自React Final Form创建于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)
};

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

更新

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

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

最佳答案

您应该避免将整个表单状态传递给组件。组件应该只具有必要的 Prop 。

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

关于javascript - 在 React 中使用 PropTypes 将字符串值作为对象传递给 Redux 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49760379/

相关文章:

javascript - Laravel + jquery ajax 找不到文件的地址

javascript - 通过函数获取对象中特定键的值

reactjs - React 用户身份验证的错误边界(使用 redux)——为什么需要本地 setState?

Javascript |通过 JSON 的特定键值在 JSON 数组中搜索

javascript - JS原型(prototype)与继承

javascript - 如何从 react 组件访问数组中的数组?

reactjs - 如何在 Webpack 配置中使用 __webpack_public_path__ 变量?

ReactJS redux 订阅语句

reactjs - 我应该如何将 reduxForm 的子组件连接到 redux 状态?

javascript - 如何删除 reducer 内 immutable-js 中的嵌套状态对象?