2017-02-03 1 views
1

여기 내 코드 스 니펫이 이렇게 보입니다. package.json에 sweetalert가 있습니다.reactJs, Redux 및 import sweetalert를 사용하는 동안 윈도우가 정의되지 않았습니다.

import swal from 'sweetalert'; export function delete() { 
return (dispatch, getState) => { 
    swal({ 
      title: "Delete API?", 
      text: "You will not be able to recover this API!", 
      type: "warning", 
      showCancelButton: true, 
      confirmButtonColor: "#DD6B55", 
      confirmButtonText: "Yes, delete it!", 
      closeOnConfirm: false 
     });} 

오류가 이것을 sweetalert에 realted된다

if(window.console){ 

윈도우가 정의되지 공개/server.js이다.

나는이 잠시 동안 작동하지만,이 있었다 나는 깨끗한 NPM 실행이 서버 측의 경우에 렌더링하지 않도록 server.js 코드의 새로운 라인 server.js

에 추가되고 내가 본 몇 가지 제안을 대체 구축했을 때 react/redux를 사용하지만 렌더링하는 동안 sweetalert 패키지를로드하지 않는 방법을 찾고 있습니다.

도움이 매우 감사합니다. Thanks

+0

원본 Sweetalert 플러그인이 지원되지 않습니다. [Sweetalert2] (https://github.com/limonte/sweetalert2) –

+0

@limonte에서 살펴보세요. sweetalert2도 시도해 보았습니다. 그런 다음 문서와 비슷한 오류가 없습니다. 위. 나는 당신이 sweetalert2에서 많은 일을하는 것을 보았다. 나는 당신이 그 패키지를 소유하고 있다고 생각한다. 비슷한 방법으로 sweetalert2를 사용할 때 public/server.js에없는 문서를 말하는 오류가 발생했을 때 도와 줄 수 있겠는가? – NagaRajendra

답변

0

문제는 webpackbuilds가 생성 된 public/server.js를 탐색 할 때 reactal/redux가 "sweetalert"를 렌더링하려고하는데 서버를 찾을 수없고 오류를 정의되지 않은 상태로 던져서 서버 측 렌더링을 중지하는 것입니다. sweetalert, 나는이 내가 무엇을하는 일은 서버 측에 sweetalert 렌더링을 중지하고, GitHub의에 대한 몇 가지 스레드에서 찾았 나를 위해 일한

const isBrowser = typeof window !== 'undefined'; 
const swal = isBrowser ? require('sweetalert') : undefined; 

으로

import swal from "sweetalert"; 

를 교체했다. 희망이 도움이 !!

관련 문제