Я хочу сбросить состояние после изменения в базе данных Firebase. Мой код выглядит так:
const [lists, setLists] = useState({});
//GET THE DATA FOR THE LISTS
useEffect(() => {
async function fetchData() {
let dataObject = {};
await listsRef.once('value', snap => {
snap.forEach(function(result) {
firebase
.database()
.ref('lists')
.child(result.key)
.on('value', snap => {
dataObject[snap.val().id] = snap.val();
setLists(dataObject);
});
});
});
}
fetchData();
}, [props.ListUpdated]);
return Object.getOwnPropertyNames(lists).length > 0 ? (
<React.Fragment>
<StyledMain role="main">
<Layout currentUser={currentUser}>
{Object.keys(widgets).map(key => {
return (
<Card
id={widgets[key].typeId}
key={widgets[key].typeId}
type={widgets[key].type}
UserIndicator="right"
>
<CardContent scrollbar={false}>
{createComponent(lists)}
</CardContent>
</Card>
);
})}
</Layout>
</StyledMain>
</React.Fragment>
) : (
<div>Loading</div>
);
Но после того, как в базе данных Firebase произошли изменения, списки не устанавливаются и показывают его начальное состояние.
Почему состояние не сбрасывается с новыми значениями из БД?