2

我需要从远程数据中设置材料表列的查找。我试过了,但它不起作用:

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();
}, []);

远程调用有效,但不设置查找。你知道是否可以做到吗?

4

3 回答 3

2

在这种情况下,结果是一个承诺,因此您必须使用 .then() 来分配它,如下所示:

useEffect(() => {   
async function getAuthors() {
    const result = await axios.get(AUTHORS_ALL);        
    setAuthors(result.data);  
}
getAuthors();
}, []);

希望能帮助到你。

于 2019-09-23T17:35:54.040 回答
1

我是这样做的:

useEffect(() => {

    async function getAuthors() {
        const result = await axios.get(AUTHORS_ALL);
        return result;
    }

    getAuthors().then(res => {
        console.log(res.data);
        setAuthors(res.data);
    });
}, []);

数据到达正确,但无论如何查找未填写!

于 2019-09-25T08:27:17.833 回答
0

我认为您只需为其分配一个数组,而不是:

{12: 'cesare pavese', 124: 'david mccomb', 3: 'stephen king'}

做这个:

['cesare pavese', 'david mccomb', 'stephen king']

通过以下方式获取它们:

setAuthors(Object.values(res.data))
于 2019-11-13T23:25:29.273 回答