javascript - 警告 : Failed prop type: The prop `value` is marked as required in `TextInput` , 但其值为 `undefined`

标签 javascript reactjs

这是在我的 google chrome 浏览器控制台上显示的错误:

Warning: Failed prop type: The prop value is marked as required in TextInput, but its value is undefined.

代码如下:

文本输入.jsx

import React from 'react';
import PropTypes from 'prop-types';

const TextInput = (props) => (
<div className="form-group">
    <label htmlFor={props.name}>{props.label}</label>
    <input 
        className="form-control mb-2"
        type={props.type}
        name={props.name}
        id={props.name}
        value={props.value}
        placeholder={props.placeholder}
        onChange={props.onChange}
    />
</div>
);

TextInput.propTypes = {
type: PropTypes.string.isRequired,
name: PropTypes.string.isRequired,
value: PropTypes.string.isRequired,
placeholder: PropTypes.string.isRequired,
onChange: PropTypes.func.isRequired,
label: PropTypes.string.isRequired,
}

TextInput.defaultProps = {
type:'text',
placeholder: '',
}

export default TextInput;

form.jsx

import React from 'react';
import PropTypes from 'prop-types';
import TextInput from './text-input';

const Form = (props) => (
<form onSubmit={props.handleSubmit}>
    <TextInput
        name="name"
        value={props.values.name}
        label="Enter Name"
        placeholder="Enter Your Name"
        onChange={props.handleChange}
    />
    <TextInput
        type="email"
        name="email"
        value={props.values.eamil}
        label="Enter Email"
        placeholder="Enter Your Email"
        onChange={props.handleChange}
    />
    <TextInput
        type="password"
        name="password"
        value={props.values.password}
        label="Enter Password"
        placeholder="Enter Your password"
        onChange={props.handleChange}
    />
    <button className="btn btn-danger" type="submit">Submit</button>
</form>
);

Form.propTypes = {
values: PropTypes.object.isRequired,
handleChange: PropTypes.func.isRequired,
handleSubmit: PropTypes.func.isRequired
}

export default Form;

问题出在哪里,如何找出问题所在?

最佳答案

最有可能的情况是您的 props.value.name 等最初是 undefined。在这种情况下,您将 undefined 作为 value 属性传递给您的 TextInput 组件,因此会出现错误。

关于javascript - 警告 : Failed prop type: The prop `value` is marked as required in `TextInput` , 但其值为 `undefined`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68461003/

相关文章:

javascript - jQuery Ajax 循环调用丢失局部变量引用

javascript - 从 PHP 查询中获取 JSON 数组后,使用 javascript 将其写入 html 页面

node.js - 打开链接下载 pdf 仅适用于硬重新加载且打开开发工具

javascript - React JS 调度未定义

reactjs - 警告 : Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed

c# - 在 Javascript 函数中使用特殊字符作为参数值时出现 Javascript 错误

javascript - 你能提取部分用户代理并显示它吗?

javascript - 在网页刷新时增加变量的变量值

javascript - 在 react-native 中我们使用 styleSheet.create。我们在reactjs中使用什么?

javascript - 无法在不可变记录中正确设置此嵌套对象