2017-12-16 27 views
0

나는 간단한 관리 형 애플리케이션을 구축 중입니다. 기능 중 하나는 사용자가 목록보기에서 콘텐츠를 내보내는 것입니다. 지금까지 나는 두 가지 가능한 접근법을 염두에두고 있습니다.버튼을 사용하여 목록보기에서 데이터 내보내기

  • (내 즐겨 찾기) 선택한 필터를 기반으로 내보내기.
  • 확인란을 사용하여 테이블에서 선택한 행을 기반으로 내 보냅니다.

나는 두 가지가 그것을 달성하기 위해 필요한 것 같아요 :

  • "목록보기"어딘가에 버튼을 렌더링 할 수 있어야한다 : "검색"내부에 "수출"버튼을 추가하는 좋은 것 섹션. 필터를 보관하는 "내보내기"버튼을 렌더링하는 방법을 찾지 못했습니다.
  • "내보내기"버튼을 클릭하면 데이터 다운로드 용 맞춤 URL을 만드는 필터 (목록보기 필터 섹션에서)를 가져올 수 있습니다. 또는 확인란을 사용하는 경우 테이블에서 선택한 행을 감지하고 해당 데이터를 내 보냅니다.

나는 예를 찾거나 다른 동료의 질문을 따르고 있으며 나는 비슷한 것을 찾아 내지 못한다. 모든 정보/예/프로젝트가 많이 감사하겠습니다.

답변

1

이것은 상당히 해결할 수 있습니다. 필터는 redux 형식으로 저장되며 연결된 모든 구성 요소에서 액세스 할 수 있습니다. 당신이 API 데이터를 가지고 핑할 수 있고 파일을 생성하고 파일 URL로 응답 할 수있는 API 엔드 포인트가 있다고 추측합니다.

1) 연결된 버튼 구성 요소를 작성하십시오. 이것은 현재 필터 데이터

https://marmelab.com/admin-on-rest/List.html#actions

2) 그것도 POST 요청을 생성하는 동작을 디스패치한다 액세스 할 mapStateToProps 수단을 가져야한다.

https://marmelab.com/admin-on-rest/Actions.html#using-a-custom-action-creator

중요한 : 당신은 파일 자체가 다운로드받을 방법에 대해 생각해야합니다. 즉석에서 URL을 생성하기 때문에 모델 데이터에 포함되지 않으므로 액세스 할 수 없습니다. 파일 이름과 경로를 구성 요소에 하드 코딩해야 클릭이 항상 다운로드로 이어질 수 있습니다. 파일 생성 자체는 비동기 작업이므로 소리가 들리는만큼 사소한 것은 아니지만. 이 버튼을 클릭하면 다운로드 링크가 표시된 페이지로 리디렉션됩니다.

0

krunal의 답을 보완하기 위해 FileSaver이라는 라이브러리가 있습니다.이 라이브러리는 json 응답을 받고 해당 내용으로 파일 저장 작업을 시작하거나 파일 저장 대화 상자를 표시하거나 원하는 파일로 직접 다운로드 할 수 있습니다.