0
나는 redux와 반응하는 응용 프로그램에서 일하고 있습니다. 내내 드롭 다운 목록에 데이터를 채우는 방법을 고수했습니다 (API 응답에서). 어떻게 적 드롭 다운 목록을 채우기 위해 해결할 수 있습니다. 하지만 난 뭔지 알고 redux와 반응을 사용하여 드롭 다운 목록을 작성하는 표준 방법입니다. 어떤 도움이 될 것입니다.반응 redux 작성 드롭 다운 목록
I have action.jsx :-
export const FETCH_PROJECTTYPE="FETCH_PROJECTTYPE";
export const FETCH_PROJECTTYPE_SUCCESS="FETCH_PROJECTTYPE_SUCCESS";
export const FETCH_PROJECTTYPE_FAILURE="FETCH_PROJECTTYPE_FAILURE";
export function fetchProjectType(){
const request=axios({
url:`${URL.ROOT_URL}/projecttype`,
method:'GET',
Headers:[]
});
return{
type:FETCH_PROJECTTYPE,
payload:request
}
}
export function fetchProjectTypeSuccess(projectTypes){
return{
type:FETCH_PROJECTTYPE_SUCCESS,
payload:projectTypes
}
}
export function fetchProjectTypeFailure(error){
return{
type:FETCH_PROJECTTYPE_FAILURE,
payload:error
}
}
projectReducer.jsx :-
import {FETCH_PROJECTTYPE,FETCH_PROJECTTYPE_SUCCESS,FETCH_PROJECTTYPE_FAILURE} from '.././actions/project.jsx';
const INITIAL_STATE={
projectTypeList:{projectTypes:[],error:null,loading:false},
}
export default function (state=INITIAL_STATE, action) {
let error;
switch (action.type){
case FETCH_PROJECTTYPE:
return {...state,projectTypeList:{projectTypes:[],error:null,loading:true}};
case FETCH_PROJECTTYPE_SUCCESS:
return {...state,projectTypeList:{projectTypes:action.payload,error:null,loading:false}};
case FETCH_PROJECTTYPE_FAILURE:
error = action.payload || {message: action.payload.message};
return{...state,projectTypeList:{projectTypes:[],error:error,loading:false}};
default:
return state;
}
}
projectTypeContainer.jsx :-
import {connect} from 'react-redux';
import {fetchProjectType,fetchProjectTypeSuccess,fetchProjectTypeFailure} from '.././actions/project.jsx';
import SelectOption from '.././components/renderSelectOption.jsx';
const mapStateToProps=(state)=>{
return{
projectTypeList:state.projectTypes.projectTypeList
}
}
const mapDispatchToProps=(dispatch)=>{
return{
fetchProjectType:()=>{
dispatch(fetchProjectType()).then((response)=>{
!response.error ? dispatch(fetchProjectTypeSuccess(response.payload.data.objdata)):dispatch(fetchProjectTypeFailure(response.payload.data))
});
}
}
}
export default connect(mapStateToProps, mapDispatchToProps)(SelectOption);
SelectOption.jsx : -
import React,{Component} from 'react';
import Select from 'react-select'
export default class SelectOption extends Component{
constructor(props){
super(props)
}
componentWillMount(){
this.props.fetchProjectType();
}
render(){
const { projectTypes,error,loading } = this.props.projectTypeList;
console.log('project type data are ' + JSON.stringify(projectTypes));
const option=projectTypes.map((item)=>{
return <option key={item._id} value={item.Title}>{item.Title}</option>
});
return(
<select className="form-control">
{option}
</select>
)
}
}
내 SelectOption 코드를 참조하십시오. 잘 작동하고있어. 하지만 양식 제출에 어떤 값을 선택하면 선택한 값을 얻지 못합니다. – Meesam