Я реализовал перехватчик состояния React в функциональном компоненте React следующим образом:
const [tableData, setTableData] = useState([]);
В моем компоненте я выполняю запрос асинхронного API и заполняю таблицу с результатом:
const loadArtikel = () =>
fetch("https://my-api.com/api/v1/xyz")
.then(res => (res.ok ? res : Promise.reject(res)))
.then(res => res.json())
return (
<Async promiseFn={loadArtikel}>
{({ data, err, isLoading }) => {
if (isLoading) return (<div>Loading...</div>)
if (err) return `Something went wrong: ${err.message}`
if (data) {
var tempData = [];
Object.keys(data.artikel).map(function (keyName, keyIndex) {
tempData.push(data.artikel[keyName]);
});
setTableData(tempData); // this line is causing problems
return (
<MaterialTable
data={tableData}
/>
)
}
}}
</Async>
);
Когда я использую setTableData()
, это приводит к тому, что запрос на выборку повторяется снова и снова. Не могу сказать почему.