positiontable renders from props and not from an internal state

This commit is contained in:
Giulio De Pasquale 2020-12-16 11:27:35 +00:00
parent 74152a9fb9
commit 0f82cd9d8c

View File

@ -1,13 +1,9 @@
import React, {Component} from "react" import React, {Component} from "react"
import {Badge, Button, Container, Table} from "react-bootstrap" import {Badge, Button, Container, Table} from "react-bootstrap"
import {NewTickData, PositionCloseMessage, PositionState, socket} from '../'; import {PositionCloseMessage, PositionState, socket} from '../';
export class PositionTable extends Component<{}, { positions: Array<PositionState> }> { export class PositionTable extends Component<{ positions: Array<PositionState> }> {
state = {
positions: []
}
constructor(props) { constructor(props) {
super(props) super(props)
} }
@ -35,16 +31,8 @@ export class PositionTable extends Component<{}, { positions: Array<PositionStat
} }
} }
componentDidMount() {
socket.on('new_tick', (data: NewTickData) => {
this.setState({
positions: data.positions
})
})
}
tableData() { tableData() {
return this.state.positions.map((position: PositionState) => { return this.props.positions.map((position: PositionState) => {
return (<tr key={position.id}> return (<tr key={position.id}>
<td className={"align-middle"}><Badge <td className={"align-middle"}><Badge
variant={this.stateVariantFromStr(position.state)}>{position.state}</Badge></td> variant={this.stateVariantFromStr(position.state)}>{position.state}</Badge></td>
@ -57,7 +45,6 @@ export class PositionTable extends Component<{}, { positions: Array<PositionStat
const message: PositionCloseMessage = { const message: PositionCloseMessage = {
message_name: "close_position", message_name: "close_position",
position_id: position.id, position_id: position.id,
symbol: position.symbol
} }
socket.emit(message.message_name, (message)) socket.emit(message.message_name, (message))
}}>Close</Button></td> }}>Close</Button></td>