我已经尝试了两个类组件:
class Foo extends React.Component {
x = 3;
componentDidMount () {
fetch(apiURL).then(() => {
x = 5;
});
}
render () {
return <div>{x}</div>;
}
}
并使用功能组件:
let x = 3;
fetch(apiURL).then(() => {
x = 5;
});
const Foo = () => <div>{x}</div>;
页面上显示的x值永远不会改变,或者似乎是随机改变的。是什么赋予了?
当您告诉React某些更改时,React仅知道使用其为状态管理提供的功能来重新渲染:
class Foo extends React.Component {
// In class components state must be an object
state = {
x: 3,
};
componentDidMount () {
fetch(apiURL).then(() => {
// Note that we change state with the setState method.
this.setState({ x: 5 });
});
}
render () {
return <div>{this.state.x}</div>;
}
}
另外,功能组件应该是 纯 组件(没有副作用),因此要更新它们,React会给我们带来麻烦:
const Foo = () => {
const [x, setX] = useState(3);
useEffect(() => {
fetch(apiURL).then(() => {
// We use the setter returned from useState.
setX(5);
});
}, []);
return <div>{x}</div>;
}
因此,您不能只是分配给一个变量并期望React知道:您必须使用它的更新函数,以便它知道需要将数据重新呈现到页面。
问题内容: 我做了一个将我的JFrame设置为全屏的JButton: 这是JFrame: 为什么当我运行游戏并全屏选择JButton时,JPanel渲染不正确? 我的意思是说,在我的黑色背景上有一个很大的灰色JPanel,没有JButton呈现。 问题答案: 问题是您正在创建多个不同的实例,但您完全不知道屏幕上实际可见哪个实例。 ,创建实例和调用,它创建的实例,以及......别急,我们,为什么我
问题内容: 我正在使用 JSF 2.1.8 实现Web应用程序,而 ui:include 标记存在问题。我有这个代码 该 navigationManagerSystem bean是JSF会话管理,在这一段代码首先呈现的,它应该是显示包括路径内容。如果我以这样的常量执行此操作,则包括这些工作,但是如果我将其放入变量中则不行,即使我已经看到变量在屏幕打印之前就保持了该值。我不知道它是否可以与包含/sy
我有两个组件,一个包含复选框,另一个是按钮。其目的是前一个组件让我们称之为行,如果复选框被更改,编辑按钮将自动启用,如果复选框不再勾选,编辑按钮将自动禁用。我本来打算添加onclick事件监听器,但最近我读了一些关于状态的文章,认为这可能是一个更好的主意。 这是我的按钮: 这是我的行组件 我的主应用程序呈现可能是这样的 我的意图是,如果单击了复选框,检查所有复选框的状态以确保选中了某些内容,如果选
我一直在尝试一些组件,这些组件执行react-cache风格的事情,并在render方法中执行web服务调用,将promise抛出到React.Suspense组件,并在数据存在时重新呈现。它们调用web服务,检查响应,并根据响应呈现或抛出错误到错误边界。我注意到,每当在组件中抛出错误时,它都会呈现两次。第一次callstack看起来正常,第二次callstack包括对invokeGuardedC
我通过使用map函数迭代来显示我的状态,这是一个数组。此外,我有一个按钮,在点击反转数组。 我认为我想做什么是相当明显的。但这对我不起作用,我不知道为什么。我必须单击两次来完成第一次还原,出现了奇怪的情况,即呈现的数组和Chrome中React开发工具在组件状态中显示的数组不匹配。 我无法解释这种行为。我开始认为这与我从道具中获得阵列有关,但我真的不知道。有什么想法吗?
我正在尝试一个用户界面3.5,所有组件都工作正常,除了selectonemenu,它不能正确渲染。 它的文本字段在选择任何下拉字段时不显示。 我不能发布图片,因为我没有那么多的声誉 代码 屏幕拍摄 我怎样才能解决这个问题?