我需要根据远程数据设置物料表列的查找。 我尝试过,但是不起作用:
const [authors, setAuthors] = useState([]);
const [state, setState] = React.useState({
columns: [
{field: 'id', title: 'ID', editable: 'never'},
{field: 'title', title: 'Titolo'},
{
field: 'author_id',
title: 'Autore',
// lookup: {12: 'cesare pavese', 124: 'david mccomb', 3: 'stephen king'},
lookup: {authors},
}
]
});
useEffect(() => {
async function getAuthors() {
const result = await axios.get(AUTHORS_ALL);
setAuthors(result.data);
}
getAuthors();
}, []);
该远程调用有效,但未设置查找。 你知道是否可以做到?
答案 0 :(得分:1)
在这种情况下,结果是一个承诺,因此您必须使用.then()才能按以下方式对其进行分配:
useEffect(() => {
async function getAuthors() {
const result = await axios.get(AUTHORS_ALL);
setAuthors(result.data);
}
getAuthors();
}, []);
希望有帮助。
答案 1 :(得分:0)
我是这样的:
useEffect(() => {
async function getAuthors() {
const result = await axios.get(AUTHORS_ALL);
return result;
}
getAuthors().then(res => {
console.log(res.data);
setAuthors(res.data);
});
}, []);
数据到达正确,但是无论如何查找都没有填写!
答案 2 :(得分:0)
我认为您只需要为其分配一个数组即可,而不是:
{12: 'cesare pavese', 124: 'david mccomb', 3: 'stephen king'}
执行此操作:
['cesare pavese', 'david mccomb', 'stephen king']
通过以下方式获取他们:
setAuthors(Object.values(res.data))