Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 只有状态的子集映射到道具时,React组件不会重新渲染_Javascript_Reactjs - Fatal编程技术网

Javascript 只有状态的子集映射到道具时,React组件不会重新渲染

Javascript 只有状态的子集映射到道具时,React组件不会重新渲染,javascript,reactjs,Javascript,Reactjs,我试图弄清楚为什么子集状态会导致a react组件在子集更改时不重新渲染。这是我的密码: import React, {Component} from 'react'; import {bindActionCreators} from 'redux'; import {connect} from 'react-redux'; import {PieChart, Pie} from 'recharts'; class MyPieChart extends Component{ rend

我试图弄清楚为什么子集状态会导致a react组件在子集更改时不重新渲染。这是我的密码:

import React, {Component} from 'react';
import {bindActionCreators} from 'redux';
import {connect} from 'react-redux';
import {PieChart, Pie} from 'recharts';


class MyPieChart extends Component{
    render() {
        var data = [
            {name: 'var1', value: this.props.myData['var1']},
            {name: 'var2', value: this.props.myData['var2']}
        ]

        return (
            <PieChart width={800} height={400}>
                <Pie data={data} cx={200} cy={200} innerRadius={70} outerRadius={90} fill="#82ca9d"/>
            </PieChart>
        );
  }
}

function mapStateToProps(state, props) {
    return {
        myData: state.components[props.component]
    }
}


export default connect(mapStateToProps)(MyPieChart);
然后一切正常,每次我更改滑块上的值时,组件都会渲染

所以我的问题是:你能在一个组件中使用状态的子集吗,或者有没有一种方法只提供它需要的信息

在我的例子中,每次应用程序中某个位置的值发生更改时,都会重新渲染,这并不是我所猜测的最佳性能

function mapStateToProps(state, props) {
    return {
        myData: state.components[props.component],
        state: state.components
    }
}