我需要用d3读取csv文件并将结果存储在状态变量中。我在useEffect Hook中分离了初始化,但当我尝试使用状态变量时,它返回null:
const ItalyMapRegion = ({ w, h, onChangeRegion }) => {
const [zone, setZone] = useState(null);
useEffect(() => {
console.log("once");
d3.csv(data).then(function (data) {
setZone(data);
});
}, []);
useEffect(() => {
console.log(zone); //this return null, why?
......
我做错了什么?
1条答案
按热度按时间hujrc8aj1#
因为在第一个
useEffect
中发生的操作是异步的。尝试将zone
变量作为依赖项添加到第二个useEffect
,并检查它是否存在: