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]);