jie*_*ede 9 reactjs material-ui redux-form
我从后端请求数据.数据是礼物数据和人物数据.
我的目标是实现连接礼物和人.每个人都送礼物.
我使用material-ui和redux-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
}
]
Run Code Online (Sandbox Code Playgroud)
我想得到这个结果:我点击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)
Run Code Online (Sandbox Code Playgroud)
结果,错误显示:
未捕获(在承诺中)TypeError:无法读取未定义的属性"map"
{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'/>
Run Code Online (Sandbox Code Playgroud)
替换代码
{member.hobbies.map( (item,keyIndex) =>
<MenuItem key={keyIndex} value={keyIndex} primaryText='hahah'/>
Run Code Online (Sandbox Code Playgroud)
浏览器呈现得很好.
我想实现选择的动态选项.
无论如何,可以实现我的目标是可以的.如果在阅读完我的描述后你不明白这个问题.我会再次编辑这个问题.
| 归档时间: |
|
| 查看次数: |
2002 次 |
| 最近记录: |