Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Redux表单:无法从字段组件获取子级_Reactjs_Redux_Redux Form_Children - Fatal编程技术网

Reactjs Redux表单:无法从字段组件获取子级

Reactjs Redux表单:无法从字段组件获取子级,reactjs,redux,redux-form,children,Reactjs,Redux,Redux Form,Children,我正在尝试渲染一个select,并希望能够执行以下操作以添加选项: <Field component={RenderSelect} name="subjects" label="Subjects"> <option value="maths">Maths</option> <option value="english">English</option> </Field> 我有一个create

我正在尝试渲染一个select,并希望能够执行以下操作以添加选项:

<Field component={RenderSelect} name="subjects" label="Subjects">
        <option value="maths">Maths</option>
        <option value="english">English</option>
</Field>
我有一个createRenderer函数:

const createRenderer = render => ({input, name, label, children}) => {
  return (
    <div key={name}>
    <label htmlFor={name}>{label}</label>
    {render(input, name, children)}
    </div>
  )
},
我的RenderSelect如下所示:

const RenderSelect = createRenderer((input, name, label, children) => {
    return (
      <select name={name} {...input}>
      {children}
      </select>
    )
})

我的印象是,我可以像我对输入、名称、标签等所做的那样,对字段中的子项进行分解,尽管这似乎不起作用。当我运行代码时,select中没有显示任何选项,对DOM的检查会验证是否没有选项。任何帮助都会非常感激。提前谢谢

只需删除标签参数即可

const RenderSelect = createRenderer((input, name, children) => {
    return (
        <select name={name} {...input}>
            {children}
        </select>
    )
});

你能不能不使用默认的“选择”?从我看来,它会做你想做的一切问题是,这只是一个简单的例子。在未来,我将对其进行扩展,事情将变得更加复杂,因此我需要一个自定义的选择组件。诚然,在我在文章中写的示例中,使用Field而不是select的唯一好处是我不必为标签编写样板文件,但这在将来可能会发生变化。此外,我确信知道如何从我的字段传递子对象对其他事情也很有用。您应该能够将名为children的道具传递给字段,它将传递给renderSelect。见3-你的意思是什么?就这样//这里有选择吗?这不起作用。children={},其中{}是您希望传递给renderSelect的子对象JSX。我还没有机会测试这个,现在就把它拉上来。但那是医生说的我想你误解了我到底想要什么也许我的问题不够清楚。我希望能够像下面这样指定选项://options,而不是,因为对我来说,第一种语法似乎更自然,更类似于HTML.unknowned。更新!对不起,我跑来跑去。你所做的一切都是正确的,你只是传递了一个不需要的参数:它一直盯着我们看!哦,哇,真管用,哈哈。谢谢你,伙计,你帮了大忙!我接受你的回答。