2017-07-27 63 views
0

我有以下組成部分:向後鍵重裝前一頁陣營

import React from 'react'; 

const SearchInput = ({className, onChange}) => { 
    const onTextInputChange = (e) => { 
    const value = e.target.value; 
    onChange(value); 
    }; 

    return (
    <textarea 
     className={className} onChange={onTextInputChange}> 
    </textarea> 
) 
}; 

export default SearchInput; 

但填充一些文本,然後將其刪除後,以前的頁面重新加載。我怎樣才能防止這種情況發生?

+0

你可以在https://jsfiddle.net或https://codesandbox.io中顯示你的問題嗎? – Andrew

+0

@Andrew的應用程序是複雜的。但我可以說,在這種情況下,textarea變空了,我不能事件調試功能。它喜歡textarea本身重定向到前一頁 – Chen

+1

我對'onChange'函數和前一頁組件感興趣。 – Andrew

回答

0

在你的函數添加event.preventDefault()

const SearchInput = ({className, onChange}) => { 
    const onTextInputChange = (e) => { 
    e.preventDefault(); 
    const value = e.target.value; 
    onChange(value); 
    }; 

    return (
    <textarea 
     className={className} onChange={(e) => onTextInputChange}>  
    </textarea> 
) 
}; 
+0

是的,我是第一個我試過的,它沒有工作。 – Chen

+0

@Chen你可以試試這個,在onChange屬性上加上'e'。 –

+0

現在嘗試,只有'(e)=> onTextInputChange(e)'實際上調用了函數。問題仍然存在。 – Chen

0

我找到了答案!顯然在來自父組件的onChange上,我做了一個字符串和數組之間的比較,它會拋出一個導致頁面重新加載的異常。 謝謝@安德魯指導我朝這個方向發展。

+0

'preventDefault'是必要的嗎? –

+0

我很高興幫助:) – Andrew