2017-02-12 4 views

答えて

8

私はあなただけで、このように、入力値をクリアできると思う:

e.target.value = null; 

ファイルの入力を制御することができない、何もそれを行うには、特定のように反応がありません。私は、私は、キー属性値を更新し、それをリセットするために必要な、その後際、ファイル入力にkey属性を設定されたために働い何

+0

は... :)それはあなたが更新する必要があり、これがどのように機能するかを説明するために私の一日 –

2

functionThatResetsTheFileInput() { 
    let randomString = Math.random().toString(36); 

    this.setState({ 
    theInputKey: randomString 
    }); 
} 

render() { 
    return(
    <div> 
     <input type="file" 
      key={this.state.theInputKey || '' } /> 
     <button onClick={this.functionThatResetsTheFileInput()} /> 
    </div> 
) 
} 

力がゼロから再入力をレンダリングするために反応します。

+0

を保存しました入力を切り取りたいときはthis.state.theInputKeyを使用します。フードの下では、キーを変更すると反応して入力を再レンダリングし、それをクリアします。 –

3

私にとってこの作品 - REF = {REF => this.fileInput = REF}ファイルをサーバーにアップロードされた後、私の場合は、その後

<input id="file_input_file" type="file" onChange={(e) => this._handleFileChange(e)} ref={ref=> this.fileInput = ref} /> 

が、私は

以下のステートメントを使用して、それをクリア
this.fileInput.value = ""; 
関連する問題