2017-10-05 8 views
0

を反応:関数が実行されると、私は以下のエラーを取得する- 私は、以下の機能で作成したハイパーリンクのクリックをトリガーしようとしていますコンポーネント反応する私ではコンポーネント

getUsers(e){ 
    e.preventDefault(); 
    const { userIds } = this.props; 
    BatchRoleActions.getAllRoleUsers(userIds) 
    .then((users) => { 
     const link = document.createElement('a'); 
     link.setAttribute('id', 'csvLink'); 
     link.setAttribute('download', 'roles.csv'); 
     link.setAttribute('href', users); 
     document.getElementById('csvLink').onClick(); 
    }); 

    } 

を: TypeError:nullのプロパティ 'onClick'を読み取れません

クリックしてダウンロードを開始するにはどうすればよいですか?

BatchRoleActions.getAllRoleUsers(userIds)は、csvファイルへのエクスポート用のデータを含む配列を返します。 encodeURI(data:text/csv;charset=utf-8,\uFEFF${data}); ReactJs - How to complete onClick before download - href

+0

のダウンロードをトリガーしますが、我々はあなたがDOMに挿入していない –

+0

あなたを助けるために多くの情報を必要とします。とにかく、ネイティブDOMメソッドとReactを混在させないでください。 – Li357

+0

これを行うにはどうすればよいでしょうか? – user1526912

答えて

1

EDIT1:

私はのための解決策を見つけようとしています私はOPは、を求め、今私の答えを編集したものを誤解しました!
EDIT2:私はあなたが何をしようとして模擬するためにサンドボックスを設定したOPのリンク

を読んだ後にもっと編集。ここでそれを見てみましょう - https://codesandbox.io/s/18k6oppy2l

ご注意をUsers.jsファイルに

  1. を私たちは、DOM

  2. た場合、ユーザーにbutton目に見えるものと見えない<a>タグをつけましょうDownload User dataボタンをクリックすると、usersの検索要求が行われます

  3. 要求は、ユーザデータの文字列表現に解決したら、我々はsetStateコールバックでの状態で

  4. をユーザーが設定するsetStateを呼び出して、私たちは、その後、プログラム的users.csvをダウンロードする目に見えない<a>タグを「クリック」。これは `資本Oと間違っOnClick`あなたが綴らファイル

+0

データをCSVファイルにエクスポートしようとしています。 atchRoleActions.getAllRoleUsers(userIds)は、csvファイルへのエクスポート用のデータを含む配列を返します。 encodeURI(データ:テキスト/ csv; charset = utf-8、\ uFEFF $ {データ}); – user1526912

+0

私の悪い、あなたが求めていたものに誤解されました。私は今私の答えを編集しました、それを見てみてください! –

+0

レンダー時にユーザーデータを取得したくありません。私はバットンからのデータのonClickをhrefに取り込み、getUsers関数を呼び出してダウンロードを開始したいと思います。私の元の質問のリンクを参照してください – user1526912

関連する問題