Comments (1)
For background, the onCreateNode
callback function is called from handleSvgClicked
synchronously. The responsibility is on the parent website on how a node is created, or whether it's created at all.
Your onCreateNode implementation only has to add a new node to an array and call setState() so that the graph is updated, how you get to that point (synchronously or asynchronously) is up to you.
In an implementation that I maintain, the onCreateNode function is a simple wrapper that first checks if nodes are allowed to be created, then it calls an API to create the node. When the API responds with success we refresh the graph with setState(). This is all asynchronous, so I think it would solve your problem.
react-digraph call:
if (!this.props.readOnly && d3.event.shiftKey) {
const xycoords = d3.mouse(d3.event.target);
this.props.onCreateNode(xycoords[0], xycoords[1]);
}
External website implementation example:
async onCreateNode(x, y) {
// fancy await example could instead be a promise with .then().
const newNode = await myAPI.createNode({
x,
y,
authorId: theBrowserUser,
otherMeta: {}
});
// update your node list
nodes = [
newNode,
...this.state.nodes
];
// forces the graph to re-render the nodes
this.setState({
nodes
});
}
from react-digraph.
Related Issues (20)
- feat-req: Node range selection using drag HOT 3
- Some Ctrl/Cmd features don't work well with Mac
- cannot call isControlKeyPressed on undefined
- v8.0.0-beta.2 - can not delete edges HOT 2
- SelectionT should have edges defined as Map<string, IEdge>, not Map<string, INode> HOT 1
- Edge creation behavior changes depending on whether shift is released during drag
- React node/edges elements are not umounted? HOT 1
- Is it intentional that styling cannot be overriden HOT 1
- centerNodeOnMove not working right when it is False HOT 1
- where is the document
- Unable to install dependencies: terser-webpack-plugin
- Edge color HOT 1
- Canvas Static ( Feature so that the graph does not move)
- Error: <g> attribute transform: Expected number, "translate(NaN,NaN) scale(Nā¦". HOT 1
- Warning: Can't perform a React state update on an unmounted component. HOT 1
- react-digraph has a transitive dependancy to react15 HOT 2
- Expand peerDependencies range for react HOT 1
- GridView component typing definition of gridSize prop HOT 1
- onSelect only called once when allowMultiSelect set to true
- Possible examples of v8.0.0 > custom wrapper functions HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
š Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ššš
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ā¤ļø Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-digraph.