Свойством состояния является ReactNode, я хочу изменить свойство, а затем получить значение свойства в некоторых onClick
функциях.
Но я считаю, что значение свойства состояния не изменилось.
Реагируйте следующим образом:
import React, { useState, useEffect } from 'react';
import { Button } from 'antd';
interface SomeData {
id?: number;
content?: React.ReactNode;
}
const Test = (): React.ReactElement => {
const [someData, setSomeData] = useState<SomeData>({});
const handleClick = (): void => {
console.log('click event', someData);
};
const loadData = (): void => {
const content = <Button onClick={handleClick}>button#1</Button>;
setSomeData({ id: 10, content, });
};
useEffect(() => { loadData() }, []);
return (
<div>
{someData.content}
<Button onClick={handleClick}>button#2</Button>
</div>
);
};
, когда я нажимаю button#1
, функция handleClick
выводит консоль click event {}
,
и нажимает button#2
, вывод консоль click event {id: 10, content: {…}}
.
почему эти два одинаковых события щелчка дают разные результаты?