Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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/3/reactjs/25.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
Javascript 表格antd 4中多个选择的默认值_Javascript_Reactjs_Antd - Fatal编程技术网

Javascript 表格antd 4中多个选择的默认值

Javascript 表格antd 4中多个选择的默认值,javascript,reactjs,antd,Javascript,Reactjs,Antd,我无法为multi-select inside窗体设置默认值 用例: 我已经创建了一个react组件,该组件使用我在每个表单中需要的一些默认道具呈现select。 现在,我想从select的defaultValueprop设置该select的默认值,而不是将initialValues传递给每个表单 我的react组件看起来像: import React, { Component } from 'react'; import { Form, Select } from 'antd'; class

我无法为multi-select inside窗体设置默认值

用例: 我已经创建了一个react组件,该组件使用我在每个表单中需要的一些默认道具呈现select。 现在,我想从select的
defaultValue
prop设置该select的默认值,而不是将
initialValues
传递给每个表单

我的react组件看起来像:

import React, { Component } from 'react';
import { Form, Select } from 'antd';

class FormSelect extends Component {
  render() {
    const {name, label, rules, onSelect, disabled, options, mode} = this.props;

    let defaultValue;
    if (mode === 'tags' || mode === 'multiple'){
      defaultValue = [];
    }

    return (
      <Form.Item
        hasFeedback
        name={name}
        label={label}
        rules={rules}
      >
        <Select
          showSearch
          mode={mode}
          tokenSeparators={[',']}
          defaultValue={defaultValue}
          onSelect={onSelect}
          disabled={disabled}
        >
          {
            options.map((op) => (
              <Select.Option key={op.value} value={op.value} label={op.label}>
                {op.label}
              </Select.Option>
            ))
          }
        </Select>
      </Form.Item>
    );
  }
}
export default FormSelect;
import React,{Component}来自'React';
从'antd'导入{Form,Select};
类FormSelect扩展组件{
render(){
const{name,label,rules,onSelect,disabled,options,mode}=this.props;
让默认值;
如果(模式=='tags'| |模式=='multiple'){
defaultValue=[];
}
返回(
{
options.map((op)=>(
{op.label}
))
}
);
}
}
导出默认表单选择;

问题是,当我设置了选择值的
defaultValue
属性时,该值会显示在UI中,但当提交表单时,默认值会被忽略,并且选择字段的值仍然
未定义
如果我没有弄错您的问题,您需要在
选项的回调中执行类似操作。map()


{op.label}
说明:如果选项的
op.value
等于作为道具传递的
defaultValue
,则默认情况下将选择该选项


React非常聪明,可以根据其值为
true
false
知道是否向特定选项添加
selected
属性。如果我没有弄错您的问题,您需要在
选项的回调中执行类似操作。map()


{op.label}
说明:如果选项的
op.value
等于作为道具传递的
defaultValue
,则默认情况下将选择该选项


React足够聪明,可以根据其值为
true
false
Form来知道是否将
selected
属性添加到特定选项。Item
现在支持4.2.2版中的
initialValue
属性,该属性可用于设置默认值。

表单。Item
现在支持
initialValue
版本4.2.2中的道具,可用于设置默认值。

不,您的问题没有答对。例如,如果未选择任何项目,FormSelect的值应给出一个空数组,但select的antd中的实际默认值为
未定义
。那你怎么处理这个案子呢。为此,您需要设置一些默认值。此外,antd
Select.Option
不提供任何
选择的
prop在
中传递
defaultValue
prop是否解决了您的问题?尝试将空数组传递给它。您的
默认值
是根据
模式
的值设置的。尝试从一开始就将其分配为空数组,而不是有条件地分配。这里也有同样的问题!有什么解决办法吗?没有,你的问题不对。例如,如果未选择任何项目,FormSelect的值应给出一个空数组,但select的antd中的实际默认值为
未定义
。那你怎么处理这个案子呢。为此,您需要设置一些默认值。此外,antd
Select.Option
不提供任何
选择的
prop在
中传递
defaultValue
prop是否解决了您的问题?尝试将空数组传递给它。您的
默认值
是根据
模式
的值设置的。尝试从一开始就将其分配为空数组,而不是有条件地分配。这里也有同样的问题!有解决办法吗?
<Select.Option
  selected={op.value === this.props.defaultValue ? true : false}
  key={op.value}
  value={op.value}
  label={op.label}>
    {op.label}
</Select.Option>