redux - React Redux 输入句柄
问题描述
我正在尝试使用 react-redux 处理简单的输入值,然后尝试显示它。我知道如何显示它,但我不知道如何将输入值从组件提交到 redux 存储。我在网上搜索并一无所获。有人可以解释如何做到这一点吗?我对 react-redux 完全陌生
import React from "react";
import "./App.css";
import { connect } from "react-redux";
import { useState } from "react";
import { updateValue, addValue } from "./actions/inputActions";
function App(props) {
const [value, setValue] = useState("");
const handleChange = (e) => {
setValue(e.target.value);
};
return (
<div className="App">
<form onSubmit={(value) => props.submitValue(value)}>
<input onChange={handleChange} value={value} type="text" />
<button type="submit">Add</button>
</form>
<h1>{props.value}</h1>
</div>
);
}
const mapStateToProps = (state) => {
return {
value: state.value,
};
};
const mapDispatchToProps = (dispatch) => {
return {
submitValue: (e, value) => {
e.preventDefault();
dispatch(addValue(value));
},
};
};
export default connect(mapStateToProps, mapDispatchToProps)(App);
解决方案
使用存储在本地状态中的值更新onSubmit函数,如下所示:
<form onSubmit={(e) => {
e.preventDefault();
props.submitValue(value)
}}>
<input onChange={handleChange} value={value} type="text" />
<button type="submit">Add</button>
</form>
你的mapDispatchToProps函数是这样的:
const mapDispatchToProps = (dispatch) => {
return {
submitValue: (value) => {
dispatch(addValue(value));
},
};
};
推荐阅读
- java - 为什么在读取目录时无法访问 windows 快捷方式
- elasticsearch - 当输出设置为文件时,Filebeat 无法启动
- java - Java,排序分析。Heapsort,Quicksort1,Quicksort2,Mergesort,给定一个黑盒
- tensorflow - 带有 padding='SAME' 的 Tensorflow/Keras Conv2D 层表现异常
- android - React Native android 命令不适用于现有项目,仅适用于 Ubuntu 19.10 中的新项目
- python - 如何在python中使用正则表达式替换最后一个匹配的单词
- macos - LaunchAgent 不运行 shell 脚本
- python - 如何在 Python 中找到带有正则表达式的字符串
- python - GCP AI 平台自定义预测例程无法使用管道加载模型,错误:92
- mysql - 如何标点使用 FROM_UNIXTIME 的 INSERT 语句