gpt4 book ai didi

reactjs - [material-ui],[redux-from] 使用动态选项选择

转载 作者:行者123 更新时间:2023-12-03 13:20:47 25 4
gpt4 key购买 nike

我从后端请求数据。数据是礼物数据和人物数据。

我的目标是实现礼物与人的联系。每个人都会收到一份礼物。

我使用material-uiredux-form包。

人员数据树如下:

persons: "
[ {
name:'person1_name',
userID:'person1_userID',
hobbies: persondata -> the same to persons
},
{
name:'person2_name',
userID:'person2_userID',
hobbies: persondata -> the same to persons
},
{
name:'person3_name',
userID:'person3_userID',
hobbies: persondata -> the same to persons
}
]

我想得到这样的结果: 我点击select , 3(如果后台人员数据为3人)人item显示(选项)。

我使用 redux 状态 state.sendGood.driftMemberArray.formData保存人员数据。

我的代码如下:

import React from 'react'
import {Field, FieldArray, reduxForm } from 'redux-form'
import { connect } from 'react-redux'
import SelectField from 'material-ui/SelectField'
import MenuItem from 'material-ui/MenuItem'

const renderSelectField = ({ input, label, meta: { touched, error }, children, ...custom }) => (
<SelectField
floatingLabelText={label}
errorText={touched && error}
{...input}
onChange={(event, index, value) => input.onChange(value)}
children={children}
{...custom}/>
)

const renderMembers = ({ fields, meta: { touched, error, submitFailed } }) => (
<ul>
{fields.map((member, index) =>
<li key={index}>
<Field name={`${member}.selectMan`} component={renderSelectField} label="select a man">
{member.hobbies.map( (item,keyIndex) =>
<MenuItem key={keyIndex} value={keyIndex} primaryText='hahah'/>
)}
</Field>
</li>
)}
</ul>
)


let NextWeekDriftForm = (props) => {
const { handleSubmit, pristine, reset, submitting} = props;
return (
<form onSubmit={handleSubmit}>
<div>
<FieldArray name="members"component={renderMembers}/>
</div>
</form>
)
}

NextWeekDriftForm = reduxForm({
form: 'NextWeekDriftForm', // a unique identifier for this form
enableReinitialize: true,
})(NextWeekDriftForm)

export default NextWeekDriftForm = connect(
state => ({
initialValues:state.sendGood.driftMemberArray.formData,
})
) (NextWeekDriftForm)

结果,错误显示:

Uncaught (in promise) TypeError: Cannot read property 'map' of undefined

{member.hobbies.map( (item,keyIndex) =>
<MenuItem key={keyIndex} value={keyIndex} primaryText='hahah'/>

我的问题可能出在这段代码中。

我用的是

  <MenuItem  value='09090' primaryText='hahah'/>
<MenuItem value='09090' primaryText='hahah'/>
<MenuItem value='09090' primaryText='hahah'/>

替换代码

 {member.hobbies.map( (item,keyIndex) =>
<MenuItem key={keyIndex} value={keyIndex} primaryText='hahah'/>

浏览器渲染良好。

我想实现select的动态选项。

不管怎样,能实现我的目标就OK了。如果你看完我的描述后还不明白这个问题。我会再次编辑这个问题。

最佳答案

当应用程序加载时,member.hobbies 可能尚未定义。如果未定义,请尝试声明一个变量以将此数组设置为 null:

const hobbies = member.hobbies || []

然后:

{hobbies.map( (item,keyIndex) =>
<MenuItem key={keyIndex} value={keyIndex} primaryText='hahah'/>

关于reactjs - [material-ui],[redux-from] 使用动态选项选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43600649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com