Я использую раскрывающийся список с множественным выбором, мне нужно то, что я выбрал в раскрывающемся списке, чтобы отправить его на сервер, вызвав api, который содержит параметр запроса для размещения результатов этого раскрывающегося списка. Я сделал массив выбранных предметов.

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
    />
}
2
Victor 11 Фев 2021 в 02:27

2 ответа

Лучший ответ

Почему бы не - с помощью axios - вы отправляете строку как:

"контакт; плата; входящие"

А в бэкэнде преобразовать эту строку в массив с помощью такой функции, как split (';')?

0
Jose Cabrera Zuniga 11 Фев 2021 в 00:20
66146665