【发布时间】:2019-07-21 14:29:37
【问题描述】:
我想为我的高级过滤器生成一个查询字符串。我的对象如下所示:
{
searchValue: {
firstName: "John",
lastName: "Doe",
postalCode: "3130",
city: "New York"
},
page: 1
}
我正在使用querystring 库来尝试格式化我想要的字符串。
export function updateAdvancedSearchQueryString<T>(props: RouteComponentProps, newValues: T) {
props.history.push({
pathname: props.location.pathname,
search: queryString.stringify(newValues)
});
}
我想要达到的输出:
/trainers?page=1&searchValue=firstName=John&lastName=Doe&postalCode=3130&city=New_York
我目前得到的输出:
/trainers?page=1&searchValue=%5Bobject%20Object%5D
如何从嵌套对象生成我想要的查询字符串?
【问题讨论】:
-
将对象转换为可预测的数组的一种方法是使用
Object.keys(),然后将结果映射到您需要的任何形式。例如:Object.keys(searchValue).map(val => `key=${searchValue[key]`),然后您可以在&上加入它,现在您可疑地接近查询字符串。
标签: javascript reactjs url query-string