繁体   English   中英

React.JS:进行获取以填充 select

[英]React.JS : make fetch to populate select

我正在尝试进行提取以填充我的 select,但我无法使用提取..

const loadOptions = async (searchQuery, loadedOptions, { page }) => {
    const requestMethod = {
                method: "PUT",
                headers: { 'Content-Type': 'application/json' },
                body: { realmIds: [props.realmScelto] }
            };
    
            const response = await fetch('myapi', requestMethod) // error is here, in requestMethod

            // const response = await axios.post(`myapi?page=${page}&size=20`, { realmIds: [props.realmScelto] }) // this works.. it gives me back 1 value, and it ok but add always the same value that I obtain from api

            // const optionToShow = await response.data
            const optionToShow = await response.json()
 return {
            options: optionToShow,
            hasMore: optionToShow.length >= 1,
            additional: {
                page: searchQuery ? 2 : page + 1,
            },
        };
    };

    const onChange = option => {
        if (typeof props.onChange === 'function') {
            props.onChange(option);
        }
    };

    return (
        <AsyncPaginate
            value={props.value}
            loadOptions={loadOptions}

            onChange={onChange}
            isSearchable={true}
            placeholder="Select"
            additional={{
                page: 0,
            }}
        />
    );

我在 requestMethod 中收到的错误是:

'{method: string; 类型的参数标头:{'Content-Type':字符串; }; 身体:{realmIds:任何[]; }; ' ' 不可分配给' RequestInit ' 类型的参数。 “body”属性的类型不兼容。 类型 '{realmIds: any []; ' ' 不可分配给类型' BodyInit '。 在类型 '{realmIds: any []; '以下类型为'URLSearchParams'的属性缺失:append、delete、get、getAll 和另外 4 个。

对于fetch ,您传入的body不会自动转换为 JSON 。

尝试

const requestMethod = {
    method: "POST",
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ realmIds: [props.realmScelto] })
};
const response = await fetch(`myapi?page=${page}&size=20`, requestMethod)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM