2017-07-07 51 views
0

因此,要確保它已更新,您必須回調但我如何使它不顯示回調,如果該回調有說的敏感數據。如何回調而不打印到控制檯ReactJS

我目前的回調代碼

handleChange(e) { 
    var cse = this.state.Case; 

    cse[e.target.name] = e.target.value; 

    this.setState({ 
     Case: cse 
    }, function() { 
     console.log(this.state.Case); 
    }); 
} 

我怎麼會回調,而無需使用的console.log?

權利,使通過移除它停止它從打印到控制檯的console.log一部分,但現在我得到這樣的警告我如何制止這種警告

預計轉讓或函數調用,而是看到了一個表達NO-未使用的表達式

+4

不知道我的理解正確的問題...但剛剛刪除的console.log? – Chris

+0

然後我得到一個警告它只有一個警告,但我真的不希望那裏的警告。警告是預期的分配或函數調用,而不是看到一個表達式no-unused-expressions –

+1

取出console.log?無論如何,你也不應該在客戶端有敏感數據,除非用戶有反正看到它的權限......因爲......需要5分鐘才能打開開發者工具並找到信息。 –

回答

0

「回調」只是一個函數,一旦原始函數完成 - 在這種情況下,一旦state已更新。但是,您絕不會使用強制來使用回調。這不是必需的參數。

參見setState()

的setState(更新器,[回調])

[]這裏指參數是可選的


所以,如果你不想console.log任何東西,你可以刪除。如果您在ESLint中收到有關空塊語句或某事的警告,則可以完全刪除回調。

所以像:

this.setState({ 
    Case: cse 
}); 
+0

如果我刪除回調函數我得到錯誤,所以我不能這樣做 –

+0

這不可能是正確的。你有什麼特別的錯誤? – Chris

+0

我得到未定義的錯誤,因爲即時設置狀態第一次從他們剛剛設置狀態,例如案例:'' –