【发布时间】:2021-06-27 02:56:17
【问题描述】:
我正在尝试使用 graphql(AWS 放大 reacjs 设置)从 dynamodb 获取记录。我创建了一个组件 CTCards 并在 App.js 中使用它
我们面临的问题是函数 fetchTodos 在无限循环中运行,尽管在数据库中只有两条记录,而我得到的正好是 2 条记录,但是这个函数在无限循环中运行
当我注释获取代码时,程序会按预期运行
//== CTCards ( component which is giving issue) ===
function CTCards(props) {
const [todo, setTodos] = useState([]);
useEffect(() => {
fetchTodos();
}, []);
const fetchTodos = async () => {
try {
// == this-block ===
const todoData = await API.graphql(graphqlOperation(listTodos));
const todoList = todoData.data.listTodos.items;
console.log('To Do List', todoList);
setTodos(todoList);
// == /this-block ===
} catch (error) {
console.log('error on fetching to do list', error);
}
};
return (
<div style={{color: "red"}}>
{todo.map((todo, index) => {
<div style={{color: "red"}}>
<div>{todo.name}</div>
<div>{todo.description}</div>
</div>
})}
</div>
)
}
//== App.js code ===
function App() {
return (
<div>
<CTCards/>
</div>
);
}
【问题讨论】:
标签: reactjs amazon-web-services graphql amazon-dynamodb amplify