Reactjs 如何在查询参数url中传递数组
我正在使用multiselect下拉列表,我想要的是我在下拉列表中选择的任何内容,通过调用包含查询参数的api将其发送到服务器,以容纳这些下拉列表结果。我制作了一个选定项目的数组Reactjs 如何在查询参数url中传递数组,reactjs,Reactjs,我正在使用multiselect下拉列表,我想要的是我在下拉列表中选择的任何内容,通过调用包含查询参数的api将其发送到服务器,以容纳这些下拉列表结果。我制作了一个选定项目的数组 Array(3) [ "contact", "fee", "inbox" ] 我希望此数组可以像这样传递到下面的url: http://localhost.com/api/influencers?status=contact&status=fee&
Array(3) [ "contact", "fee", "inbox" ]
我希望此数组可以像这样传递到下面的url:
http://localhost.com/api/influencers?status=contact&status=fee&status=inbox
在我的方法中,我最终得出以下结论:
http://localhost:8080/details?status[]=contact&status[]=fee&status[]=inbox
谁能帮我一下吗
const InfluencersList = props => {
const [availability, setAvailability] = useState(null);
const handleAvailabilityChange = value => {
const availability1 = value;
setAvailability(value);
getFilterData(availability1, null);
};
const getFilterData = (search, pageNumber) => {
let params = {};
params.status = search; //search is array [contact,
if (pageNumber) {
params.page = pageNumber; // no is array is number
}
axios.get("/api/influencers", { params: params }).then(res => {
setState({
items: res.data.data
});
});
};
<ChoiceList
title="Availability"
titleHidden
choices={statuses}
selected={availability || []}
onChange={handleAvailabilityChange}
allowMultiple
/>
}
constinfluencerslist=props=>{
const[availability,setAvailability]=useState(null);
常量handleAvailabilityChange=值=>{
常量可用性1=值;
设置可用性(值);
getFilterData(可用性1,空);
};
常量getFilterData=(搜索,页码)=>{
设params={};
params.status=search;//搜索是数组[contact,
如果(页码){
params.page=pageNumber;//否是数组是数字
}
get(“/api/influencers”,{params:params})。然后(res=>{
设定状态({
项目:res.data.data
});
});
};
}
为什么不呢-使用axios-您可以通过以下方式发送字符串:
“联系人;费用;收件箱”
在后端,使用类似split(“;”)的函数将该字符串转换为数组。您需要使用该函数来构建具有相同名称的多个查询的参数
迭代搜索
,并为参数中的每个值指定一个新的状态值:
const getFilterData = (search, pageNumber) => {
const params = new URLSearchParams();
search.forEach(value => params.append('status', value));
if (pageNumber) {
params.append('page', pageNumber) ;
}
axios.get("/api/influencers", { params }).then(res => {
setState({
items: res.data.data
});
});
};
你说dropdown[]会出现两次,但我没有看到。你发布了全文吗?从你所说的来看,这是正确的方式和结果。dropdown[]会出现两次我已经更正了。我现在的问题是:如何像这样传递到以下URL:。等待你的答复。谢谢你拆分(“;”)我试过了,但没有成功。你的后端阅读是什么?你在后端使用的是什么语言?Axios和java script/react通常用于前端,除非你使用nodejs作为web服务器,在那里你可以使用java script进行后端编码。后端编码。在从前端发送Axios请求后,我使用laravel is phpand,what正在接收相应的控制器函数?我遇到了类似的问题,控制器在处理包含字符串的json对象后始终能够获取字符串。在这些情况下,json的使用是一种标准。感谢您的回复,这是可能的,但页码无效,因为它不是数组