Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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 如何使用toString()将数组转换为动态选定值的字符串格式_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript 如何使用toString()将数组转换为动态选定值的字符串格式

Javascript 如何使用toString()将数组转换为动态选定值的字符串格式,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,在React应用程序中,我有一个过滤器组件。每次应用过滤器时,我都通过从前端传递选定的过滤器值来调用api。过滤器组件有复选框,所以当我选择多个值时,它当前作为字符串数组传递。我想将选定的筛选器值作为字符串而不是字符串数组发送。我总共有2个过滤器-日期、名称。在我的父组件中,handleFilterChange中的filters参数将具有所有两个值,即Name作为字符串数组和Date作为字符串,我将其作为filterCondition对象的一部分发送到请求负载中。我想将名称单独更改为字符串 Pa

在React应用程序中,我有一个过滤器组件。每次应用过滤器时,我都通过从前端传递选定的过滤器值来调用api。过滤器组件有复选框,所以当我选择多个值时,它当前作为字符串数组传递。我想将选定的筛选器值作为字符串而不是字符串数组发送。我总共有2个过滤器-日期、名称。在我的父组件中,handleFilterChange中的filters参数将具有所有两个值,即Name作为字符串数组和Date作为字符串,我将其作为filterCondition对象的一部分发送到请求负载中。我想将名称单独更改为字符串

ParentComponent.js-

const ParentComponent = props => {
  const [filterObj, setFilterObj] = useState({});

  const handleFilterChange = filters => {
    console.log(filters); // Show the filter values-Date(String), Name(Array of Strings)
    const reqParams ={
      id,
      filterCondition: filters // An object with Name(Array) and date(string)
    }
    setFilterObj(filterObj);
    //API call which will pass filters in request params
    fetchApi(reqParams);
  };

  return (
    <ChildComponent onChange={handleFilterChange} />
  );
}
我希望我的请求如下- 预期的请求结构-

{
 id:1, 
 filterCondition: {
  name: 'XYZ, ABC',
  date: '2020-06-29T00:00:00'
 }
}

有人能帮助我理解如何实现上述预期的请求结构。

要将
数组
转换为
字符串
可以使用
连接(分隔符)
函数

var obj={
id:1,
过滤条件:{
名称:['XYZ','ABC'].join(','),
日期:“2020-06-29T00:00:00”
}
}

控制台日志(obj)filterCondition.name=filterCondition.name[0]
的操作。(对于其中的多个值,现在开始这个问题没有多大意义。)实际上,它与索引无关。我的代码能够正确处理选定值(包括多个选定值)。我试图找到一种方法,使用toString()来命名字段,以便它发送字符串值。名称可以有多个值,目前它是字符串数组,我想将其更改为仅字符串值。然后使用
toString
,如果这确实为您提供了多个值所需的格式-您实际上没有指定,因此我们无法确定
filterCondition.name=filterCondition.name.toString()
My filterCondition将包含所有筛选器值。我无法在requestParams对象中直接使用toString。Javascript中的toString()函数与数字一起使用,并将数字转换为字符串。它用于返回表示指定数字对象的字符串。这家伙在发布我的答案后更改了他的问题!Javascript中的toString()函数与数字一起使用,并将数字转换为字符串。它用于返回表示指定数字对象的字符串。
{
 id:1, 
 filterCondition: {
  name: 'XYZ, ABC',
  date: '2020-06-29T00:00:00'
 }
}