上面的代码有没有简单点的
时间: 2024-03-11 10:49:22 浏览: 61
当然可以!以下是一个更简单的示例代码,供参考:
```
import React, { useState } from 'react';
import { useHistory } from 'react-router-dom';
function SearchBar() {
const [searchText, setSearchText] = useState('');
const history = useHistory();
const handleSearch = () => {
history.push({
pathname: '/goods',
search: `name=${searchText}`
});
}
return (
<div>
<input type="text" value={searchText} onChange={e => setSearchText(e.target.value)} />
<button onClick={handleSearch}>Search</button>
</div>
);
}
export default SearchBar;
```
在上面的示例代码中,与之前相比,主要做了以下几点简化:
1. 使用了ES6的解构赋值语法,使得代码更简洁易懂。
2. 在history.push()方法中直接传入一个对象,而不是字符串拼接的方式,更加清晰。
3. 将商品名称作为查询参数传递给商品界面,而不是路由参数,更加灵活。
另外,需要注意的是,在商品界面中获取查询参数的方式也要进行相应的调整,具体可以使用query-string等库来解析查询参数。
阅读全文