据我了解,应该这样做,以便 useFocusEffect 可以作为 useEffect 进行测试(模拟)。我使用 useFocusEffect 来获取数据:
useFocusEffect(
useCallback(() => {
fetchData();
}, [fetchData]),
);
Run Code Online (Sandbox Code Playgroud)
错误消息: react-navigation 挂钩需要导航上下文,但无法找到。确保您没有忘记创建和渲染反应导航应用程序容器。如果需要访问可选的导航对象,可以使用useContext(NavigationContext),它可能会返回
封装版本:
"jest": "^24.9.0",
"react-native": "0.61.2",
"react-navigation": "^4.0.10",
"react-navigation-hooks": "^1.1.0",
"@testing-library/react-native": "^4.0.14",
Run Code Online (Sandbox Code Playgroud) 我想创建一个函数,它迭代具有相同类的所有元素并删除特定类。
使用 JavaScript 可以轻松完成。
const boxes = document.querySelectorAll(".box1");
function remove_all_active_list() {
boxes.forEach((element) => element.classList.remove('active'));
}
Run Code Online (Sandbox Code Playgroud)
但是我怎么能做这个类似的事情是 ReactJs。我面临的问题是我不能document.querySelectorAll(".box1")在 React 中使用,但是,我可以使用React.createRef()但它没有给我所有元素,它只给我最后一个元素。
这是我的反应代码
应用程序.js
import React, { Component } from 'react';
import List from './List';
export class App extends Component {
componentDidMount() {
window.addEventListener('keydown', this.keypressed);
}
keypressed = (e) => {
if (e.keyCode == '38' || e.keyCode == '40') this.remove_all_active_list();
};
remove_all_active_list = () => {
// boxes.forEach((element) => element.classList.remove('active'));
};
divElement = (el) => {
console.log(el);
el.forEach((element) => …Run Code Online (Sandbox Code Playgroud)