도지사 선도 있었고 정치 API로 놀아 보는 with React.js
8900 단어 React자바스크립트es6es2015material-ui
도지사 선, 끝났습니다.
저는 도민이 아니므로 상관없습니다만, 꺾어진 분위기(?) 때문에 거기에 편승해 정치 API를 사용해 무엇인가 만들어 보았습니다.
덧붙여서 이번에 만든 물건의 코드는 여기에 있습니다!
이번에 만든 물건
이런 느낌의 물건을 만들었습니다.
간단히 설명하면 Seiji.kpi-net.com의 API 을 사용하여 정치인의 정보를 함께 볼 수 있습니다.
중의원 의원, 참의원 의원 등의 종별을 선택하고, 정당명을 선택하고, 검색하는 버튼을 누르면 해당하고 있는 정치가의 일람과 건수를 열람할 수 있다고 하는 것입니다.
힘든 점
API에 요청을 했을 때, json다운 배열이 돌아오고 있는데 json이 아닌 것 같은 무언가로 객체에 변환하는 것의 괴로운, , , 라고 고민하고 있으면 딱 기사를 만나 도움이 되었습니다. 진짜 굉장한,,,!
JSON 같은 문자열을 객체로 변환하는 JavaScript
덧붙여서 해당 부분의 코드를 발췌
assets/js/container/Result.jsx
...
const data = res.text.replace(/\r?\n/g,"").trim();
const politicians = (new Function("return " + data))();
...
그리고는 언제나 그대로의 느낌으로 실장했습니다. 코드를 보는 것이 빠를지도 모릅니다 ヾ ( ´ε`;) ゝ
소기
소기라기보다는 react-router 의 문서 봐 달라고 쓰고 있습니다만, url 의 파라미터는
this.props.params
로 취득할 수 있습니다.assets/js/common.js
import React, {Component} from 'react';
import {render} from 'react-dom';
import Main from './container/Main';
import Result from './container/Result';
import {Router, Route, browserHistory} from 'react-router';
import injectTapEventPlugin from 'react-tap-event-plugin';
injectTapEventPlugin();
render(
<Router history={browserHistory}>
<Route path='/' component={Main} />
<Route path='/:type' component={Result} /> //ここのことです。
</Router>,
document.getElementById('app')
)
assets/js/container/Result.jsx
typeCheck() {
switch(this.props.params.type) {
case '1':
return '衆議院議員'
case '2':
return '参議院議員'
case '3':
return '知事'
case '4':
return '市長'
case '5':
return '区長'
case '6':
return '町長'
case '7':
return '村長'
default:
return '不正な値です'
}
}
이번에는 이러한 느낌으로 처리를 분기했습니다.
감상
지난번 , wp-rest-api를 사용한 간단한 샘플을 만들 때 좀 더 API를 사용하여 놀고 싶다고 생각했기 때문에 이번에도 기세로 만들어 보았습니다.
오픈 API로 무언가를 만드는 경험이 별로 없었기 때문에 이번에도 자극적이었습니다. 또 뭔가 만들고 싶습니다.
Reference
이 문제에 관하여(도지사 선도 있었고 정치 API로 놀아 보는 with React.js), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hirodeath/items/7c83948b6c77b90c0ac9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)