Передача значений в функцию tickFormatter в Recharts BarChart - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь построить Даты в BarChart, для которого требуется преобразовать метки времени в соответствующие значения Unix Epoch (т. Е. Секунды с 01.01.1970). Это означает, что любые даты до 1970 года отображаются в виде отрицательных чисел.

Вначале я думал о том, чтобы иметь функцию, которая сначала находила самую раннюю дату (наименьшее число эпох), а затем использовал ее, чтобы установить новую базу для моей BarChart. Это фактически проигнорировало бы 1970 и имело бы соответствующие даты.

К сожалению, свойство tickFormatter Recharts в <XAxis /> и <YAxis />, похоже, оба принимают только функции, при этом value вызывается неявно, когда форматировщик выполняет свою работу.

Это похоже на то, что я хотел бы сделать, затем отформатировать в соответствии с "наименьшим числом", присвоенным функции removeEpochBuffer. Это должно рассматривать параметр как номер буфера для удаления из предоставленного нанесенного числа, а затем возвращать исходный (правильный) номер эпохи, который можно переформатировать как YYYY-MM-DD.

            <YAxis
              name={getYAxisLabel(yAxisFields, CHART_TYPES.COLUMNCHART)}
              domain={['auto', 'auto']}
              tickFormatter={removeEpochBuffer(lowestNumbers[0])}
              allowDataOverflow={false}
            />

Это похоже на то, что У меня сейчас, основываясь на том, что я видел на GitHub:

            <YAxis
              name={getYAxisLabel(yAxisFields, CHART_TYPES.COLUMNCHART)}
              domain={['auto', 'auto']}
              tickFormatter={customFormatter}
              allowDataOverflow={false}
            />

Возможно ли это даже с Recharts?

...