export class SearchBar extends React.Component {
render() {
return (
<div>
<input onChange={this.props.onSearchTermChange} />
</div>
);
}
}
const mapDispatchToProps = dispatch => {
return {
onSearchTermChange: () =>
dispatch({
type: "SEARCHTERMCHANGE",
payLoad: {}
})
};
};
基本上,当输入发生更改时,我想调用“ onSearchTermChange”操作并将输入的值传递给reducer,但是我不知道如何从onSearchTermChange操作访问输入值。
答案 0 :(得分:2)
您必须使用event.target.value
<input
onChange={ (e) => this.props.onSearchTermChange(e.target.value)}
value={this.props.value}
/>
您的动作创建者现在将是
const mapDispatchToProps = dispatch => {
return {
onSearchTermChange: (value) =>
dispatch({
type: "SEARCHTERMCHANGE",
payLoad: value
})
};
};
和您的减速器
case "SEARCHTERMCHANGE":
return {
...state,
value: action.payLoad
}
最后,您需要将自己的价值导入道具。
const mapStateToProps = (state) => ({
value: state.value,
})