gpt4 book ai didi

javascript - 自定义输入 - Redux 表单

转载 作者:行者123 更新时间:2023-11-28 11:48:41 25 4
gpt4 key购买 nike

我有以下 CustomInput 组件:

import React from 'react';

const CustomInput = props => (
<div className="form-group">
<label className="form-label">{props.title}</label>
<input
className="form-input"
name={props.name}
type={props.inputType}
value={props.content}
onChange={props.controlFunc}
placeholder={props.placeholder}
/>
</div>
);

CustomInput.propTypes = {
inputType: React.PropTypes.oneOf(['text', 'number']).isRequired,
title: React.PropTypes.string.isRequired,
name: React.PropTypes.string.isRequired,
controlFunc: React.PropTypes.func.isRequired,
content: React.PropTypes.oneOfType([
React.PropTypes.string,
React.PropTypes.number,
]).isRequired,
placeholder: React.PropTypes.string,
};

export default CustomInput;

这是我的表格:

import React, { PropTypes } from 'react';
import { Field, reduxForm } from 'redux-form';
import CustomInput from '../components/CustomInput';

const renderMyStrangeInput = field => (
<CustomInput
inputType={'number'}
title={'How many items do you currently own?'}
name={'currentItems'}
controlFunc={param => field.input.onChange(param.val)}
content={{ val: field.input.value }}
placeholder={'Number of items'}
/>
);

class ItemsForm extends React.Component {
constructor(props) {
super(props);
}

render() {
const { handleSubmit } = this.props;
return (
<form className="container" onSubmit={handleSubmit}>
<h1>Nuevo Pedido</h1>
<Field name="myField" component={renderMyStrangeInput} />
<div className="form-group">
<button type="submit" className="btn btn-primary input-group-btn">Submit</button>
</div>
</form>
);
}
}

ItemsForm.propTypes = {
};

ItemsForm = reduxForm({
form: 'Items',
})(ItemsForm);

export default ItemsForm;

我可以渲染我的组件,但内容类型存在一些问题。首先,如果我将 CustomInput 设置为接受我得到的数字:

he specified value "[object Object]" is not a valid number. The value must match to the following regular expression: -?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)?

其次,如果我将 inputType 设置为文本,它会呈现:

[object Object]

因此,控制台给出以下警告:

Warning: Failed prop type: Invalid prop `content` supplied to `CustomInput`.

如何正确设置内容?

最佳答案

我认为问题在于您正在尝试将字符串作为对象传递

<CustomInput
inputType="number"
title="How many items do you currently own?"
name="currentItems"
controlFunc={param => field.input.onChange(param.val)}
content={field.input.value}
placeholder="Number of items"
/>

关于javascript - 自定义输入 - Redux 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41809056/

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