Я использую подключенный компонент в качестве реквизита, переданного родительскому компоненту, но я не могу получить какие-либо реквизиты от connect () или даже от определения функции внутри компонента.
Я пыталсяопределил функцию props в render (), но все еще не работает
import React from 'react';
import PropTypes from 'prop-types';
import {Col,Row} from 'antd'
import injectSheet from 'react-jss';
class SubComponent extends React.Component{
constructor(props){
super(props);
}
picClicked=()=>{
console.log("cause state!");
console.log(this.props.picClicked);// output undefined
this.props.picClicked;
}
render(){
const {picClicked,classes} = this.props;// classes is from react-jss
console.log(this.props);// only classes is shown from the console log
return(
<div>
<div onClick={this.picClicked} className={classes.headBlank}>
</div>
</div>
)
}
SubComponent.propTypes={
picClicked:PropTypes.func.isRequired
};
export default injectSheet(logoStyle)(SubComponent)
, тогда контейнер выглядит следующим образом:
const mdtp = (dispatch)=>{
return{
picClicked:()=>{console.log("picClicked!");}
};
};
export default connect(null,mdtp)(SubComponent);
SubComponent затем используется как props в другом родительском компоненте, напримерthis:
ReactDOM.render(
<Provider store={storeMainContents}>
<ParentComponent contentsShow={<SubComponent />} />
</Provider>
,document.getElementById("parentComponent")
);
Родительский компонент выглядит следующим образом:
render(){
const {contentsShow,classes}=this.props;
return(
<div>
<div>
{this.props.contentsShow}
</div>
</div>
);
}
Я ожидал, что SubComponent может получить доступ к реквизитам, таким как picClicked, как действие, которое может быть отправлено или, по крайней мере,получить доступ.Теперь это просто не определено.