如何将变量添加到请求的 POST 正文
How do I add variable to the POST body of the request
我正在尝试在 React 和 material-ui 中进行搜索和过滤。我已经实现了客户端搜索。我现在需要做的就是在下面添加 something 以在请求正文中传递文本字符串。此文本应来自 TextField,但我不知道如何正确实现它。如果我这样做,当它改变时它最终是未定义的,因为当状态改变时我似乎无法直接添加它。即使我通过添加 const
得到结果,它通常只会在页面加载时加载,而不是在 onInput
.
上加载
搜索:
const SearchBar = ({setSearchQuery}) => (
<form>
<TextField
id="search-bar"
onInput={(e) => {
setSearchQuery(e.target.value);
}}
variant="outlined"
placeholder="Search..."
size="small"
/>
</form>
);
导出函数:
const [tableData, setTableData] = useState([])
const [searchQuery, setSearchQuery] = useState("");
useEffect(() => {
const someVariable = "5"
const targeturl = "https://website.com/"+someVariable+"/-1";
fetch(targeturl, {
method: 'post',
headers: { 'Content-Type': 'application/json' },
})
.then((data) => data.json())
.then((data) => setTableData(data))
}, [])
const rows = tableData;
...
<div className="dflex jusend">
<SearchBar searchQuery={searchQuery} setSearchQuery={setSearchQuery} />
</div>
我尝试添加一个从 TextField 获取搜索字符串的函数,但这不起作用。
fetch(targeturl, {
method: 'post',
headers: { 'Content-Type': 'application/json' },
body: getQuery(searchQuery)
})
.then((data) => data.json())
.then((data) => setTableData(data))
}
您可以在 fetch
请求的正文中发送 data
并在 useEffect
中添加依赖项:
useEffect(() => {
const someVariable = "5"
const targeturl = "https://website.com/"+someVariable+"/-1";
fetch(targeturl, {
method: 'post',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({searchQuery})
})
.then((data) => data.json())
.then((data) => setTableData(data))
}, [searchQuery])
我正在尝试在 React 和 material-ui 中进行搜索和过滤。我已经实现了客户端搜索。我现在需要做的就是在下面添加 something 以在请求正文中传递文本字符串。此文本应来自 TextField,但我不知道如何正确实现它。如果我这样做,当它改变时它最终是未定义的,因为当状态改变时我似乎无法直接添加它。即使我通过添加 const
得到结果,它通常只会在页面加载时加载,而不是在 onInput
.
搜索:
const SearchBar = ({setSearchQuery}) => (
<form>
<TextField
id="search-bar"
onInput={(e) => {
setSearchQuery(e.target.value);
}}
variant="outlined"
placeholder="Search..."
size="small"
/>
</form>
);
导出函数:
const [tableData, setTableData] = useState([])
const [searchQuery, setSearchQuery] = useState("");
useEffect(() => {
const someVariable = "5"
const targeturl = "https://website.com/"+someVariable+"/-1";
fetch(targeturl, {
method: 'post',
headers: { 'Content-Type': 'application/json' },
})
.then((data) => data.json())
.then((data) => setTableData(data))
}, [])
const rows = tableData;
...
<div className="dflex jusend">
<SearchBar searchQuery={searchQuery} setSearchQuery={setSearchQuery} />
</div>
我尝试添加一个从 TextField 获取搜索字符串的函数,但这不起作用。
fetch(targeturl, {
method: 'post',
headers: { 'Content-Type': 'application/json' },
body: getQuery(searchQuery)
})
.then((data) => data.json())
.then((data) => setTableData(data))
}
您可以在 fetch
请求的正文中发送 data
并在 useEffect
中添加依赖项:
useEffect(() => {
const someVariable = "5"
const targeturl = "https://website.com/"+someVariable+"/-1";
fetch(targeturl, {
method: 'post',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({searchQuery})
})
.then((data) => data.json())
.then((data) => setTableData(data))
}, [searchQuery])