Thank you @jonsharpe!
Using an updater function to set the state fixes it.
const [items, setItems] = useState<Item[]>([])
const createItem = useCallback(async (item: Item) => {
info("posting new Item");
fetch(`${API_SERVER}/CreateItem`, {"POST", body: item})
.then(response => setItems(items => [...items, response]));
}, [items]);