View 防止组件重新绘制Mithril&x2B;ChartJS

View 防止组件重新绘制Mithril&x2B;ChartJS,view,components,chart.js,redraw,mithril.js,View,Components,Chart.js,Redraw,Mithril.js,我正试图在一张由米特里尔的组件制作的画布上画画。我的问题是,我不希望在应用程序需要时重新绘制此组件的视图。我发现每次启动重画时,onremove/oncreate方法都在调用。每次重新绘制应用程序时,Mithril是否会重新创建我的画布?有没有解决方案可以避免这种情况,因为我无法在应用程序每次需要重新绘制时调用createPlot() 我的代码: export default function ResultsLinePlot(state){ return { onremo

我正试图在一张由米特里尔的组件制作的画布上画画。我的问题是,我不希望在应用程序需要时重新绘制此组件的视图。我发现每次启动重画时,onremove/oncreate方法都在调用。每次重新绘制应用程序时,Mithril是否会重新创建我的画布?有没有解决方案可以避免这种情况,因为我无法在应用程序每次需要重新绘制时调用createPlot()

我的代码:

export default function ResultsLinePlot(state){
    return {
        onremove: function() {

        },
        oncreate: function(){
            if(_filter(state)){
                createPlot() // ChartJS draw the plot in the canvas "ChartLinePlot"
            }
        },
        view : function(){
            return _filter(state) ? m('div', {class: 'row'}, [
                (state.results.length > 0) ? m('div', {class: 'col-md-12'},[
                    m('canvas',{id:"chartLinePlot",width:"400",height:"400"})
                ]) : null
            ]) : null
        }
    }
}

尝试改为
oninit
,并在需要时使用流更新视图看起来很像是oninit和oncreate之间的混淆。