parentcomponent.js
let childData = 0;
function ParentComponent() {
function handleClick() {
childData++;
}
return (<>
<button onClick={handleClick}>Increment</button>
<ChildComponent data={childData} />
</>);
}
ChildComponent.js
export default function ChildComponent(props) {
return(<p>Child Component: {props.data}</p>);
}
为什么在单击increment按钮
后,子组件仍然显示旧值而不重新呈现?
React组件仅在状态和/或道具更新时重新呈现。由于ContainerComponent
没有状态,GraphData
道具也不更改,因此ContainerComponent
永远不会重新发送,其子级也不会。
将状态添加到ContainerComponent
。当FiltedData
状态更新时,ContainerComponent
将与子级一起重新Render。
function ContainerComponent(props) {
const { graphData } = props;
const [filteredData, setFilteredData] = React.useState([...graphData]);
function handleClick() {
setFilteredData((data) => data.filter((x) => x > 0));
}
return (
<>
<button onClick={handleClick}>Filter</button>
<GraphComponent data={graphData} />
<TableComponent data={filteredData} />
</>
);
}
let childData = 0;
function ContainerComponent() {
function handleClick() {
childData++;
}
return (<>
<button onClick={handleClick}>Increment</button>
<ChildComponent data={childData} />
</>);
}
ChildData
也不起作用,因为现在对象引用从不改变,每次只需改变相同的引用。您需要将childData
存储在组件状态中,并更新该状态以将该组件更新为rerender。
在父组件中: 我有一个布尔状态: 我将其发送到子组件: 根据布尔值,我希望它呈现不同的组件。
这个问题在这里已经得到了回答,但事情总是在变化。 基本上,父组件获取一些数据,子组件需要这些数据。 这是子组件。
诉求:react父组件某些值改变后,需要让子组件同步更新,但是这个过程不能让父组件重新渲染 请帮忙罗列下所有可能的方式
我对JS的反应有点陌生。我有两个问题。我来了 现在我要做的是,当应用程序组件挂载时,我生成一个对后端服务器的ajax调用,当它返回时,它更新道具,并设置状态,这样子组件也会重新呈现,但子组件不会重新呈现。谁能告诉我出了什么问题。 问题2 现在让我们假设我将进入组件二路由,它将呈现组件二,我在应用程序组件中生成一个ajax调用,根据ajax调用返回的数据,我在应用程序组件中设置了一些道具,我还希望组
我正在做一个React-Native项目,我意识到React-Native似乎打破了React-flow(父到子)道具更新。 基本上,我是从“应用程序”组件调用“菜单”组件,将一个道具传递给“菜单”。然而,当我更新“应用程序”状态时,“菜单”上的道具应该更新,但这不会发生。我做错什么了吗? 这是我的密码: 一个pp.js 菜单js
我是新来的反应。作为一个学习练习,我正在构建一个国际象棋应用程序 我想根据父级中的状态更改子级的DOM。当前,在父级组件的状态变化时,子级组件没有变化。 PS:请忽略任何语法错误。这段代码是实际代码的精简。如果你想看完整的代码,请看这里