Ref возвращает ноль при изменении размера - PullRequest
1 голос
/ 27 февраля 2020

Я пытаюсь получить ссылку и хочу проверить, имеет ли она значение.

Вначале он имеет значение, но когда я изменяю размер графика, он исчезает.

Я думаю, что эта проблема связана с реакцией, а не библиотекой диаграммы.

Есть идеи?

/j https://codesandbox.io/s/billboardjs-resize-onresize-bug-28fvz

const Page1 = props => {
  const [isResize, setIsResize] = useState(false);
  const chartRef = createRef();

  const options = {
    onresize(ctx) {
      console.log(chartRef.current);
      setIsResize(true);
    },
    onresized(ctx) {
      setIsResize(false);
    },
    data: {
      columns: [
        ["data1", 30, 200, 100, 170, 150, 250],
        ["data2", 130, 100, 140, 35, 110, 50]
      ],
      types: {
        data1: "line",
        data2: "area-spline"
      },
      colors: {
        data1: "red",
        data2: "green"
      }
    }
  };
  return (
    <div>
      <Chart
        className="timelineChart"
        options={options}
        isResize={isResize}
        ref={chartRef}
      />
    </div>
  );
};

1 Ответ

2 голосов
/ 27 февраля 2020

Полагаю, это связано с тем, что объект параметров сохраняет первую ссылку, а createRef () всегда возвращает новую ссылку.

Используйте useRef() вместо createRef()

Позвольте мне знаю, поможет ли это.

Я попробовал это по ссылке JillAndMe, и она работает: https://codesandbox.io/s/billboardjs-resize-onresize-bug-28fvz

...