api.getReactiveState()
Description
Gets the state object with the reactive properties of GanttThis method allows you to subscribe to the returned properties in the same way as actions.
Usage
api.getReactiveState(): object;
Returns
The method returns an object with the following reactive properties:
{
tasks,
links,
start,
columns,
end,
lengthUnit,
cellWidth,
cellHeight,
scaleHeight,
scales,
taskTypes,
zoom,
selected,
activeTask,
baselines,
}
Example
In the example below we subscribe to the selected property in order to show toolbar buttons for the selected task:
import React, { useState, useEffect, useRef } from "react";
import { getData } from "./common/data";
import { Gantt, Toolbar } from "wx-react-gantt";
import "wx-react-gantt/dist/gantt.css";
import { Button } from "wx-react-wx";
const MyComponent = () => {
const data = getData();
const apiRef = useRef();
const [selected, setSelected] = useState();
useEffect(() => {
if (apiRef.current) {
setSelected(apiRef.current.getReactiveState().selected);
}
}, [apiRef.current]);
const handleDelete = () => {
if (apiRef.current) {
apiRef.current.exec("delete-task", { id: selected });
}
};
// other settings
return (
<>
<Toolbar>
{selected && (
<Button onClick={handleDelete}>Delete task</Button>
// other settings
)}
</Toolbar>
<Gantt
ref={apiRef}
tasks={data.tasks}
// other settings
/>
</>
);
};
export default MyComponent;
Related articles: