Событие Victory onClick не обновляет цвет заливки - PullRequest
0 голосов
/ 06 мая 2020

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

Вот мое приложение. js

import ReactDOM from 'react-dom';
import { VictoryScatter } from 'victory';
import {sampleData} from './data_holder'



class App extends React.Component {
  render() {
    return (
      <div>
  <h3>Click Me</h3>
  <VictoryScatter
    style={{ data: { fill: "#c43a31" } }}
    size={9}
    labels={() => null}
    events={[{
      target: "data",
      eventHandlers: {
        onClick: () => {

          return [
            {
              target: "data",
              mutation: (props) => {
                const fill = props.style && props.style.fill;
                return fill === "black" ? null : { style: { fill: "black" } };
              }
            }, {
              target: "labels",
              mutation: (props) => {
                return props.text === "clicked" ?
                  null : { text: "clicked" };
              }
            }
          ];
        }
      }
    }]}
    data={sampleData}
  />
</div>

    )
  }
}

ReactDOM.render(<App/>,  document.getElementById('root'));

export default App

Пример данных, сохраненных в .data_holder, находится здесь:

export const sampleData=[
      { x: 1, y: 2 },
      { x: 2, y: 3 },
      { x: 3, y: 5 },
      { x: 4, y: 4 },
      { x: 5, y: 7 }
    ]

Событие onClick происходит (когда я добавляю оператор журнала в onClick четко показан), но цвета заливки не обновляются. Любая помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 22 августа 2020

Используйте onPressIn вместо onClick.

0 голосов
/ 13 мая 2020

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

...