when i am trying to state this.setState({ ["node_" + n]: test_node })
i am getting error this.setState is not a function
, here i have uploaded my full code, can anyone please check my code and help me to resolve this issue ?
import createEngine, { DiagramModel, DefaultNodeModel, DefaultLinkModel } from '@projectstorm/react-diagrams';
import * as React from 'react';
import { CanvasWidget } from '@projectstorm/react-canvas-core';
import { DemoCanvasWidget } from '../helpers/DemoCanvasWidget';
const data_json = require('../client-demo-simple/data.json');
const all_tables = data_json.base.tables;
console.log(all_tables)
export default () => {
this.state = {
node_level: []
}
//1) setup the diagram engine
var engine = createEngine();
//2) setup the diagram model
var model = new DiagramModel();
//3-A) create a default node
let test_node = null;
for (let n = 0; n < all_tables.length; n++) {
let table_name = all_tables[n].name;
let table_description = all_tables[n].description;
let table_fields = all_tables[n].fields;
let random_number_1 = Math.floor(Math.random() * 101);
let random_number_2 = Math.floor(Math.random() * 101);
let random_number_3 = Math.floor(Math.random() * 101);
test_node = new DefaultNodeModel({
name: table_name,
color: 'rgb(' + random_number_1 + ',' + random_number_2 + ',' + random_number_3 + ')'
});
this.setState({ ["node_" + n]: test_node })
test_node.setPosition(100, 100);
for (let n = 0; n < table_fields.length; n++) {
let field_name = table_fields[n].name;
test_node.addOutPort(field_name);
}
model.addAll(test_node);
}
engine.setModel(model);
model.setLocked(true);
return (
<DemoCanvasWidget>
<CanvasWidget engine={engine} />
</DemoCanvasWidget>
);
};