2017-07-27 87 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