我正在編寫一個用react-redux編寫的項目。我想將處理程序傳遞給子組件,以便可以從子組件觸發處理程序。
我父組件代碼如何在react-redux中傳遞處理程序
import React from 'react';
import Input from 'src/containers/Input';
export default class AddChannelComponent extends React.Component<void, PropsType, void> {
render() {
function inputHandler (value){
console.log("value is",value);
}
return (
<div >
<p>Type your input</p>
<div>
<Input inputHandler={this.inputHandler} placeholder="Search all public channels..." />
</div>
</div>
);
}
}
輸入是一個js文件,該文件調用組件InputComponent.js
代碼Input.js文件是:
import { connect } from 'react-redux';
import InputComponent from 'src/components/InputComponent';
const mapStateToProps = (state) => ({
});
const mapDispatchToProps = (dispatch) => ({
});
const Input = connect(
mapStateToProps,
mapDispatchToProps
)(InputComponent);
export default Input;
現在我InputComponent.js文件的代碼:
import React from 'react';
export default class InputComponent extends React.Component<void, PropsType, void> {
callHandler = event => {
console.log("value in input",event.target.value);
this.props.inputHandler(event.target.value) <== Error Occur
}
render() {
return (
<input {...this.props} onChange={this.callHandler}/>
);
}
}
this.props.inputHandler(event.target.value)給了我錯誤_this.props.inputHandler我這不是一個功能。如何在子組件中調用父處理程序。
在此先感謝。