Примечание: я хочу решение для реагировать на родной . Я хочу создать всплывающую подсказку и перетаскиваемый курсор на диаграмме области, в которой есть линия, которая показывает точку данных на диаграмме области с помощью перетаскиваниякурсор.Я просто хочу отметить точку данных из набора данных, а не только значение y и точку касания экрана, только значения x и y на графике при касании экрана, которое дает ближайшее значение набора данных, соответствующеена экран.
Я ищу в интернете что-то похожее, но это было для реакции и использовал диаграмму рассеяния, так как я очень новичок в победе, нативная библиотека и реакция-натив, может кто-то сказать, как сделатьРеакционно-родной эквивалент этого с диаграммой площади.Вот ссылка, по которой я имел в виду, чтобы увидеть ..
Click me
Я просто хочу сделать аналогичную вещь с диаграммой области в родной победе с перетаскиваемым курсороми всплывающая подсказка, которая только отмечает точку данных на графике, но не на экранных координатах.
Может ли кто-нибудь предоставить мне код реактивного кода, как его реализовать, аналогично ссылке, приведенной выше, согласно моему требованию с диаграммой области победы?Также в том числе реагировать код, который я хочу преобразовать в реагировать родной.Пожалуйста, кто-нибудь, помогите мне.
/* Victory requires `react@^15.5.0` and `prop-types@^15.5.0` */
const {
VictoryLine, VictoryChart, VictoryCursorContainer, VictoryLabel, VictoryScatter
} = Victory;
const { range, first, last } = _; // lodash
const mountNode = document.getElementById('app');
const allData = range(750).map((x) => ({x, y: x + 30 * Math.random()}));
const findClosestPointSorted = (data, value) => {
// assumes 3 things:
// 1. data is sorted by x
// 2. data points are equally spaced
// 3. the search is 1-dimentional (x, not x and y)
if (value === null) return null;
const start = first(data).x;
const range = (last(data).x - start);
const index = Math.round((value - start)/range * (data.length - 1));
return data[index];
};
class App extends React.Component {
constructor() {
super();
this.state = {
activePoint: null
};
}
handleCursorChange(value) {
this.setState({
activePoint: findClosestPointSorted(allData, value)
});
}
render() {
const { activePoint } = this.state;
const point = activePoint ?
<VictoryScatter data={[activePoint]} style={{data: {size: 100} }}/>
: null;
return (
<div>
<VictoryChart
containerComponent={
<VictoryCursorContainer
dimension="x"
onChange={this.handleCursorChange.bind(this)}
cursorLabel={cursor => `${activePoint.x}, ${Math.round(activePoint.y)}`}
/>
}
>
<VictoryLine data={allData} style={{data: {stroke: '#999'} }}/>
{point}
</VictoryChart>
</div>
);
}
}
ReactDOM.render(
<App/>,
mountNode
);