使用 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/