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