用零数据填充日志

时间:2018-08-27 19:09:06

标签: javascript reactjs

我通过以下方式将参数传递到render()函数中:

render() {
    const { minerid, ownerid, logs, address } = this.props.miner
}

它们的结构如下:

logs

有时,发送这些日志的脚本崩溃。 我试图使此处理程序,以便将充满零的日志添加到日志数组。

 handleCrash = (logs) => {
    let time = parseFloat(logs[logs.length - 1].time)
    const newTime = Date.now()

    const num = logs[logs.length - 1].gpus.num
    if ((newTime - time) > 300) {
        time = time+300

        logs.push(
            {
                gpus: {
                    fans: Array(num).fill('0'),
                    hashrate: Array(num).fill('0'),
                    temps: Array(num).fill('0'),
                    num: num
                },
                miner: logs[logs.length - 1].miner,
                time: time
            }
        )

    }
}

然后我尝试将其放入我的componentDidMount()中:

componentDidMount () {
    this.handleCrash(this.props.miner.logs)
}

,以及将handleCrash()放在我的渲染方法中,如下所示:

render() {
    this.handleCrash(this.props.miner.logs)
    const { minerid, ownerid, logs, address } = this.props.miner

我有不同的功能来处理这些数据,计算平均值,并在应用程序中进一步绘制图表。

在我尝试添加这些零日志并且得到“ Error: <path> attribute d: Expected number, "MNaN,85.926498958…”并且图形不再呈现之前,它们都工作正常。

零个日志看起来与其他所有日志完全相同。

Anyobody知道我在这里做错了什么吗?预先谢谢你!

1 个答案:

答案 0 :(得分:0)

也许是这样的:

handleCrash = (logs) => {
    let time = parseFloat(logs[logs.length - 1].time)
    const newTime = Date.now()

    const num = logs[logs.length - 1].gpus.num
    if ((newTime - time) > 300) {
        time = time+300

        logs.push(
            {
                gpus: {
                    fans: Array(num).fill('0'),
                    hashrate: Array(num).fill('0'),
                    temps: Array(num).fill('0'),
                    num: num
                },
                miner: logs[logs.length - 1].miner,
                time: time
            }
        )

    }

    return logs
}

render() {
    const { minerid, ownerid, logs, address } = this.handleCrash(this.props.miner.logs)