我是 React.js 的新手(使用钩子),想通过简单的编码来学习,我的问题是我正在从 ksngfr.com/something.txt 获取数据,我从那里获取的数据在图片中正如你所看到的(在图片中我刚刚输入了1-4,但它是1-50)。出于某种原因,当我在输入“3”中写入时,它给了我这个(第一张图片)。我从互联网上查了一下并提出了这个解决方案。我想实现这一目标:当用户在输入中写入数字“3”时,它应该转到数据并检查数字 3(即 3:95426),然后仅返回该结果而没有其他内容,例如一个框(数字 3) )和另一个框其值“95426”。英语不是我的母语,抱歉有错误
我正在获取的数据:
我的代码:
function App() {
const [data, setData] = useState([]);
const [searchResults, setSearchResults] = useState([]);
const [searchTerm, setSearchTerm] = useState("");
const obj = {};
useEffect(() => {
const fetchData = () => {
let corsAnywhere = "https://cors-anywhere.herokuapp.com/";
let something = "http://ksngfr.com/something.txt";
fetch(corsAnywhere + something)
.then((response) => response.text())
.then((result) => {
const theDataArr = result.replace(/\n/g, " ");
const f = theDataArr.split(" ");
setData(f);
});
};
fetchData();
}, []);
data.forEach((d) => {
var propertyK = d.split(":")[0];
var propertyv = d.split(":")[1];
obj[propertyK] = propertyv;
});
const k = Object.keys(obj);
useEffect(() => {
const results = k.filter((person) =>
person.toLowerCase().includes(searchTerm)
);
setSearchResults(results);
}, [searchTerm]);
console.log(data);
return (
<div>
<input
type="text"
value={searchTerm}
placeholder="Search..."
onChange={(e) => setSearchTerm(e.target.value)}
/>
<div>
{searchResults.map((value, index) => (
<div>
<div>
<IndexBox key={index} index={index + 1} />
</div>
<div>
<ValueBox key={index} value={value} />
</div>
</div>
))}
</div>
</div>
);
}
export default App;
倚天杖
相关分类