小编hlf*_*rmn的帖子

如何重置ReactJS文件输入

我有文件上传输入:

<input onChange={this.getFile} id="fileUpload" type="file" className="upload"/>
Run Code Online (Sandbox Code Playgroud)

我这样处理上传:

getFile(e) {
    e.preventDefault();
    let reader = new FileReader();
    let file = e.target.files[0];
    reader.onloadend = (theFile) => {
        var data = {
            blob: theFile.target.result, name: file.name,
            visitorId:  this.props.socketio.visitorId
        };
        console.log(this.props.socketio);
        this.props.socketio.emit('file-upload', data);
    };
    reader.readAsDataURL(file);
}
Run Code Online (Sandbox Code Playgroud)

如果我上传同一个文件两次,则不会触发上传事件.我该如何解决这个问题?对于简单的js代码,只需执行以下操作即可:this.value = null; 在变更处理程序.我怎么能用ReactJS做到这一点?

html5 file-upload reactjs

23
推荐指数
8
解决办法
3万
查看次数

Nodejs 通过电子邮件发送流

我正在尝试使用Nodemailer通过电子邮件发送我的流数据,但由于某种原因,附件0 kb在我下载并查看其信息时出现。如何正确发送流及其数据作为附件?流应该包含一个PKPass将响应作为附件发送是否更好的选择?我正在使用passkit-generator来生成PKPass

const stream = examplePass.generate();

res.set({
    'Content-Type': 'application/vnd.apple.pkpass',
    'Content-disposition': `attachment; filename=${passName}.pkpass`,
});

stream.pipe(res);

//Send the receipt email

stream.on('finish', (attach) => {

    let transporter = nodemailer.createTransport({
        host: 'smtp.gmail.com',
        port: 587,
        secure: false,
        requireTLS: true,
        auth: {
            user: 'email4@gmail.com',
            pass: 'password',
        },
    });

    let mailOptions = {
        from: 'email4@gmail.com',
        to: 'emailTo1@gmail.com',
        subject: 'You\'re on your way to ',
        html: '<h1>Reciept email</h1>',
        attachments: [
            {
                filename: 'Event.pkpass',
                contentType: 'application/vnd.apple.pkpass',
                content: stream,
            },
        ], …
Run Code Online (Sandbox Code Playgroud)

node.js nodemailer

7
推荐指数
1
解决办法
352
查看次数

打字稿阻止从项目中的某些目录导入

我想知道是否有一种方法可以防止某个范围内的所有文件从另一个第二范围导入任何文件。例:

鉴于此项目结构:

project/
??? node_modules/
??? test/
??? src/
?   ??? domain/
?   ?   ??? SomeModelClass.ts
?   ??? application/
?   ?   ??? SomeApplicationConcern.ts
?   ??? database/
?   ?   ??? SomeRepository.ts
??? tsconfig.json
??? tslint.json
Run Code Online (Sandbox Code Playgroud)

我想至少执行以下一些规则:

  • SomeApplicationConcern 可以从任何地方导入代码。
  • SomeRepository不能导入代码application
  • SomeModelClass不能从进口既不代码application也不是domain

使用嵌套tsconfig.json文件可以通过某种方式实现吗?
可以使用一些花哨的tslint规则来实现吗?

我不知道这样的事情是否可能。如果检测到禁止的依赖关系,我想得到一个编译错误(或tslint错误,在我的项目中设置为错误严重性)。

architecture dependencies typescript

4
推荐指数
2
解决办法
895
查看次数

使用"ref"关键字将List <Class>作为参数传递给C#

朋友们!

所以我一直在写一个简单的程序.基本上,我有一个类(3个字符串,1个int,一些方法).我正在从文本文件初始化此类的对象的值.我正在使用List.问题是初始化是一个单独的功能.我在这个函数中声明并初始化了List BOTH.但是,我可能在其他功能中需要它,包括"Program.Main".

我应该制作一个"全球"课程并制作一个公开的List <Class>吗?我决定立即在我的Program.Main函数中声明它.但是,我不确定,List是通过值还是通过引用传递的.我在网上找到了一个页面,建议使用ref关键字.我现在有:

public Class FooClass
{...}

class Program
{
    static void Main(string[] args)
    {
      List<FooClass> fooDB = new List<FooClass>;
      initFromFile(ref fooDB);
    }

    private static initFromFile(ref List<FooClass> fooDB)
    {
       using (StreamReader ... )
       {
          while( ... )
          {
             ...
             fooDB.Add(new FooClass(args))
          }
       }
     }//initFromFile

}//Program
Run Code Online (Sandbox Code Playgroud)

我应该继续像这样工作吗?还是有任何重要的建议?也许"参考"根本不是一个好习惯?

TLDR:我应该制作一个全局列表还是将其作为参考或其他方式传递(建议).如果通过引用传递,那么我应该使用ref关键字还是有另一种方式?

提前致谢,

~~~ hlfrmn

c# pass-by-reference

0
推荐指数
1
解决办法
1万
查看次数