react d3 地图 marks(Slider) 根据年份显示节点
https://ant.design/components/slider-cn
如果显示20年,就是每一年都显示一个标记点,但是现在需要超过50年,那么需要做判断,超过20年,就5年显示一个标记点:
<span style="color:#dcc6e0">const</span> marks = {};
<span style="color:#dcc6e0">if</span> (<span style="color:#f5ab35">Object</span>.keys(updatedYearlyData).length > <span style="color:#f5ab35">20</span>) {
<span style="color:#f5ab35">Object</span>.keys(updatedYearlyData).forEach(<span style="color:#f5ab35">year</span> => {
<span style="color:#dcc6e0">if</span> (<span style="color:#f5ab35">parseInt</span>(year) > <span style="color:#f5ab35">20</span> && <span style="color:#f5ab35">parseInt</span>(year) % <span style="color:#f5ab35">5</span> === <span style="color:#f5ab35">0</span>) {
marks[year] = <span style="color:#abe338">`</span><span style="color:#abe338">${year}</span><span style="color:#abe338">年`</span>;
}
});
} <span style="color:#dcc6e0">else</span> {
<span style="color:#d4d0ab">// 使用原来的 marks 逻辑</span>
<span style="color:#f5ab35">Object</span>.keys(updatedYearlyData).forEach(<span style="color:#f5ab35">year</span> => {
marks[year] = <span style="color:#abe338">`</span><span style="color:#abe338">${year}</span><span style="color:#abe338">年`</span>;
});
}同时修改slider:
(使用
marksvaluedefaultValueincluded=falsestep=nullmarks
<Slider min={firstYear} max={lastYear} marks={marks} onChange={handleSliderChange} defaultValue={firstYear} tooltipVisible tipFormatter={(value) => `${value}年`} />