私はReduxを初めて使いました。私は自分で解決できないというこの質問をしています。Reduxのコンテナメソッドからアクションをディスパッチするにはどうすればよいですか?
私はTODOリストアプリを作成しましたが、今度はリストに新しいタスクを追加する必要があります。ユーザーはテキスト入力に何かを書きます。ボタンをクリックすると、新しいタスクをリストに追加する必要があります。
私はすでに「ADD TASK」アクションを取得しています。しかし、コンポーネントメソッドの中から呼び出す方法はわかりません。イベントリスナーをボタンに追加しましたが、クリックすると次に何をすべきですか?
class List extends React.Component{
addTask(e){
var title = $('[name=title]');
title.val('');
//what should I do?
}
render(){
const mappedTasks = this.props.tasks.map(function(task){
return (
<li key={task.title}>{task.title}</li>
);
});
return (
<div>
<ul>
{mappedTasks}
</ul>
<input name='title' />
<button onClick={this.addTask}>Adicionar</button>
</div>
);
};
}
const mapStateToProps = function(state,ownProps){
return {
message: 'Hello World!',
tasks: state.tasks
}
}
const ListComponent = connect(
mapStateToProps
)(List);
この例では、addTaskメソッドから何かをディスパッチしたいと思います。 ReduxのComponentメソッドからディスパッチする適切な方法は何ですか?
@editこれはトリックでした: では、ブランドンは、私はこの方法で
this.props.dispatch({type:'ADD_TASK', payload: {title: title.value}});
私の質問を私の 'connect'関数で更新しました。コンポーネントメソッドの 'this'はnullです。 'mapStateToProps'がうまく動作し、再レンダリングが行われています –