javascript - 在 reactjs 中使用 axios 插入选择的值
问题描述
我正在 React.Js 中开发一个应用程序,由于某种原因,它没有保存在选择中选择的值。
const App = () => {
// is obtained from another api: REQUEST_API_GET
const Dates = dates.map(item => ({
value: item.Name,
label: item.Name,
}));
const [date, setDate] = React.useState({
Name: ''
});
function handleChangeDate(event) {
setDate({
Name: event.value
})
}
const addDate = (date) => {
axios.post(`${REQUEST_API_POST}`, {date});
};
return (
<>
<div>
<NoSsr>
<Select
classes={classes}
styles={selectStyles}
inputId="date"
TextFieldProps={{
label: 'Date',
InputLabelProps: {
htmlFor: 'date',
shrink: true,
},
placeholder: 'Search',
}}
options={date}
components={components}
value={date.Name}
onChange={handleChangeDate}
/>
</NoSsr>
<a onClick={() => addDate()}>add</a>
</div>
</>
)
}
export default App;
当我选择它时,它似乎取值,你可以看到handleChangeDate
if put a console.log
,但addDate
它没有取值。
我该如何解决它,建议?
解决方案
只需查看您的代码,很明显您实际上并没有在addDate
处理程序中使用正确的数据。
您需要state
在参数中传递值,甚至更好地直接在回调中传递,如下所示:
const addDate = () => {
axios.post(`${REQUEST_API_POST}`, {date}); // here your date is your state!
};
由于您没有传递任何参数,因此您也可以onClick
像这样改进回调:
<a onClick={addDate}>add</a>
另一个细节,将对象属性设置为小写值更为常见,Name
因此name
.
推荐阅读
- php - PHP - 过滤 UTF-8 字符串以仅允许基本字符集和一些标点符号
- python-2.7 - 使用 GitLab 对终端进行身份验证
- powershell - 删除 CSV 中的所有重复条目
- python - 如何根据邻居之间的给定标准将数组拆分为几个较小的数组
- flutter - 我正在尝试通过单击按钮打开另一个活动,但它显示了一些错误
- c - 汇编程序消息:错误:尝试向后移动 .org
- c - 尝试使用两个指针在c中查找middel但程序崩溃链表
- active-directory - 在单个查询中以递归方式查找所有给定 SAM 帐户的 AD 组
- ios - 在 iOS 设备中,在 WebView 中打开内容时获取 _userSettingsForUser 移动
- qt - 如何将 QPushButton 设置为垂直增长?