首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >React/Redux无法访问数组中对象的属性

React/Redux无法访问数组中对象的属性
EN

Stack Overflow用户
提问于 2021-06-05 20:46:27
回答 1查看 163关注 0票数 1

使用react和redux工具包。

我有一个表单,允许用户创建项目。post请求必须遵循相关的猫鼬项模式。

表单条目与以下有状态值相关:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  const [name, setName] = useState('');
  const [imageURL, setImageURL] = useState('');
  const [brand, setBrand] = useState('');
  const [category, setCategory] = useState('');
  const [description, setDescription] = useState('');
  const [barcode, setBarcode] = useState('');
  const [countInStock, setCountInStock] = useState('');
  const [message] = useState(null);
  const [uploading, setUploading] = useState(false);
  const [uploadFile, setupLoadFile] = useState('');

我不希望人们组成他们自己的类别,所以我有一个单独的类别mongodb表,我把它填充到下面的表单中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
          <Form.Group controlId='category'>
            <Form.Label>Category</Form.Label>
            <Form.Control
              as='select'
              type='category'
              placeholder='enter Category'
              value={category}
              onChange={(e) => setCategory(e.target.value)}>
              {categories.map((category) => {
                return <option key={category._id}>{category.name}</option>;
              })}
            </Form.Control>
          </Form.Group>

问题是,在加载表单时,第一个类别选项显示为默认选项,但该选项未设置为类别。因此,如果用户填写表单,并且不触摸类别下拉选项和点击submit,数据将以未定义的类别发送,即使在用户看来,第一个类别是被选中的。

我曾尝试用两种方法解决这个问题:

  1. 使表单触发器setCategory在加载时带有默认显示的类别(这不起作用),
  2. 获取第一个类别名称,并将其添加到useState中,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  const categories = useSelector(getAllCategories);
  let firstCat = categories[0]; //this works
  let firstCatName = firstCat.name; //this fails
  const [category, setCategory] = useState(firstCatName)

这种方法失败了,因为由于某种原因,试图获取第一个类别的名称会触发一个错误,即无法找到未定义的属性名称,即使对象在那里,而且我可以通过表单中的类别数组进行映射。

你知道我在这里做错什么了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-06 14:23:55

@Ajeet Shah

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
useEffect(() => { 
if (categories.length > 0) { 
setCategory(categories[0].name) 
} }, [categories])

我没有意识到你可以在一个页面中使用useEffect两次,显然你可以!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67855867

复制
相关文章
android RecyclerView 里面嵌套editText,点击RecyclerView内部其他控件让editText失去焦点
有很多方法,没详细去尝试,而我的方法是在每个item添加一个hideKeyboard,hideKeyboard是自定义方法,此方法写在activity中
用户10521372
2023/05/24
1.6K0
Android EditText详解
很常用的控件EditText(输入框); 和TextView非常类似,最大的区别是:EditText可以接受用户输入。和前面一样,我们不一个个讲属性, 只讲实际应用。那么开始本节内容!
奶油话梅糖
2021/03/19
1.8K0
Android中EditText
1.android:hint="只能输入指定数字",文本框中显示提示信息 2.android:password="true"该文本框是一个密码框 3.android:phoneNumber="true"该文本框是一个电话框 4.android:digits="abcdefghijk"指输入内容限制为指定内容 5.android:drawableLeft="@drawable/icon"设置文本左边绘制指定图像 6.android:drawablePadding设置文本框内文本与图形间的间距 7.androi
欢醉
2018/01/22
7440
Android UI学习之EditText
比如上面那正图片就是我截取的添加联系人的界面,很明显能输入文本的就是EditText。
DragonKingZhu
2022/05/08
4630
Android UI学习之EditText
点击显示错误
双折线点击一个,另一显示a b 错误.PNG 正确.PNG 隐藏一条线 tooltip: { // 气泡 trigger: "axis"
用户4344670
2019/08/28
1.2K0
点击显示错误
Android edittext InputFilter 输入控制
InputFilter 可能需要对用户的输入进行一些限制,可以为EditText Widget设置一个InputFilter以实现这一功能
程思扬
2022/01/10
7340
Android 实现EditText输入金额
Android中EditText是一个InputType类型有很多的控件,可以来达到不同的软键盘效果。如下图:
网罗开发
2021/01/29
3.1K0
Android 实现EditText输入金额
Android取消EditText自带黄色边框
平时还没感觉,但是在做一些高逼格的应用时,发现系统自带的黄色边框很难看哎,比如说下面这个小搓比: 哎呦,简直搓的不行。 想要取消边框黄色只要一步: 在你的EditText里添加一个属性:android:background="@null" duang!很清新有没有
张拭心 shixinzhang
2022/11/30
7260
Android实现EditText文本颜色渐变
刚开始想着先是设置textColor属性就可以了,然后写了个一个带渐变的shap感觉不好使,于是乎就自定义解决,代码如下
程序员飞飞
2020/02/27
3.3K0
Android实现EditText文本颜色渐变
Android点击EditText文本框之外任何地方隐藏键盘的解决办法
1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/traceroute_rootview" android:layout_width="fill_parent" android:layout_height="fi
庞小明
2018/03/07
1.6K0
Android入门教程 | EditText 用户输入
使用EditText时,有时候我们会需要监听输入的回车,以做出一些操作。 或者需要把回车变成“搜索”,“发送”或“完成”等等。
Android_anzi
2021/11/05
8380
Android EditText之软键盘搜索
android:imeOptions="actionSearch" 主要是这个属性,就是把软键盘上的回车键改成搜索按钮 相关的属性值还有
yechaoa
2022/06/10
1.6K0
Android EditText之软键盘搜索
【Android从零单排系列七】《Android视图控件——EditText》
小伙伴们,在上文中我们介绍了Android视图控件TextView控件,本文我们继续盘点,介绍一下Android视图控件中的第二个控件——EditText。
再见孙悟空_
2023/02/10
9150
【Android从零单排系列七】《Android视图控件——EditText》
TabLayout用法,android顶部导航栏,android底部导航栏
TabLayout是android.support.design里的一个控件,使用它可以很方便的做出顶部导航和底部导航。类似于这样的,能设置选中时字体的颜色和选中时的图片。
天涯泪小武
2019/01/17
4.1K0
点击加载更多

相似问题

Android:点击EditText启动活动

30

Android点击(+)按钮添加edittext字段,点击(-)移除

30

Android Edittext可绘制点击卡住焦点

120

Android EditText在点击时会导致OutOfMemoryError

10

在android中关闭edittext点击后的点击事件

113
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文