gpt4 book ai didi

javascript - 使用 redux-form 7 将自定义 props 传递给组件

转载 作者:行者123 更新时间:2023-12-03 00:58:32 24 4
gpt4 key购买 nike

我正在使用以下库

"@material-ui/core": "^3.0.3",
"react": "^16.5.0",
"redux": "^4.0.0",
"redux-form": "^7.4.2",

如何将自定义 Prop 传递给我的 component redux-form 的属性 <Field />

根据this example从 redux-form 开始,我下面的所有内容都应该可以工作,但它并没有拉动 multiline={true}rows={2} Prop 进入<TextField />组件。

我不知道它应该如何工作,因为我是一个 javascript 新手。任何帮助,将不胜感激。

PostForm.js

import React from 'react'
import { Link, withRouter } from 'react-router-dom';
import { reduxForm, Field } from 'redux-form';
import Button from '@material-ui/core/Button';
import TextField from '@material-ui/core/TextField'


class PostForm extends React.Component {

renderTextField = ({ input,
label,
meta: { error, touched } },
...custom) => {
return (
<TextField
name={label}
label={label}
{...input}
{...custom}
/>
);
};


onSubmit(event) {
event.preventDefault();

const { submitPost, history, formValues } = this.props;

submitPost(formValues.values, history);
}

render() {
<form onSubmit={this.onSubmit.bind(this)}>

<Field
name="title"
component={this.renderTextField}
label="Title"
/>
<Field
name="body"
component={this.renderTextField}
label="Body"
multiline={true}
rows={2}
/>
<div className={classes.buttonContainer}>
<Button to="/posts" component={Link} className={classes.button} color='secondary'>
Cancel
</Button>
<Button type='submit' className={classes.button} color='primary'>
Next
</Button>
</div>
</form>
}
}

export default reduxForm({
validate,
form: 'postForm',
destroyOnUnmount: false
})(PostForm)

最佳答案

要渲染多行字段,您需要传递 multiLine={true} (注意 Camel 外壳 - 这很重要)。这是基于 https://github.com/erikras/redux-form-material-ui 链接的文档这看起来像旧版本。根据较新的文档,似乎 multiline全部小写(为了后代的缘故,将其保留在这里)。

更新

此外,...custom位于花括号之外。应该是

renderTextField = ({ input, label, meta: { error, touched } , ...custom })

关于如何做的一些信息Field向下传递 props - 这不足以涵盖此答案中的所有内容,但我可以提供一些指导来帮助您入门。

<Field ... />是 JSX 表示法。虽然 JSX 使阅读和编写 HTML 结构变得容易,[React actually doesn't need JSX][1] 。在内部,它们都编译为纯 JS 函数(使用 React.createElement 和其他工厂函数)。

之后,通过...custom等等只是 rest/spread operators ES6 中引入。它们是快捷方式,您也可以在没有它们的情况下使用 React(这意味着您可以仅使用 ES5 语法)。

关于javascript - 使用 redux-form 7 将自定义 props 传递给组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52712694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com