Javascript useState钩子在setState上渲染整个组件
在下面的代码中,我使用了2个“useState”挂钩。每当我调用这些钩子中任何一个的“setState”函数时,整个组件都会重新呈现(检查“console.log”语句)。我想如果我为一个变量调用“setState”,那么只有与该变量相关联的元素应该呈现,而不是整个组件 代码段:Javascript useState钩子在setState上渲染整个组件,javascript,reactjs,react-native,react-hooks,state,Javascript,Reactjs,React Native,React Hooks,State,在下面的代码中,我使用了2个“useState”挂钩。每当我调用这些钩子中任何一个的“setState”函数时,整个组件都会重新呈现(检查“console.log”语句)。我想如果我为一个变量调用“setState”,那么只有与该变量相关联的元素应该呈现,而不是整个组件 代码段: const App = () => { const [count, setCount] = React.useState(0) const [count2, setCount2] = React.use
const App = () => {
const [count, setCount] = React.useState(0)
const [count2, setCount2] = React.useState(0)
return (
<SafeAreaView>
<TouchableOpacity onPress={() => setCount(count => count + 1)}>
{console.log('Counter 1')}
<Text>{count}</Text>
</TouchableOpacity>
<TouchableOpacity onPress={() => setCount2(count2 => count2 + 1)}>
{console.log('Counter 2')}
<Text>{count2}</Text>
</TouchableOpacity>
</SafeAreaView>
);
};
const-App=()=>{
const[count,setCount]=React.useState(0)
常量[count2,setCount2]=React.useState(0)
返回(
setCount(count=>count+1)}>
{console.log('Counter 1')}
{count}
setCount2(count2=>count2+1)}>
{console.log('Counter 2')}
{count2}
);
};
将每个文本
呈现在独立组件中。。。这样,每当每个计数器组件收到新道具时。。它将重新渲染
function FirstCounter ({ count }) {
console.log('FirstCounter', count);
return (
<Text>{count}</Text>
);
}
export default React.memo(FirstCounter);
function SecondCounter ({ count }) {
console.log('SecondCounter', count);
return (
<Text>{count}</Text>
);
}
export default React.memo(SecondCounter);
function App() {
/** state is it was */
const [count, setCount] = React.useState(0);
const [count2, setCount2] = React.useState(0);
return (
<SafeAreaView>
<TouchableOpacity onPress={() => setCount(count => count + 1)}>
<FirstCounter count={count} />
</TouchableOpacity>
<TouchableOpacity onPress={() => setCount2(count2 => count2 + 1)}>
<SecondCounter count={count2} />
</TouchableOpacity>
</SafeAreaView>
);
}
函数FirstCounter({count}){
console.log('FirstCounter',count);
报税表(
{count}
);
}
导出默认反应备忘录(FirstCounter);
函数SecondCounter({count}){
console.log('SecondCounter',count);
报税表(
{count}
);
}
导出默认反应备忘录(第二计数器);
函数App(){
/**是什么状态*/
const[count,setCount]=React.useState(0);
const[count2,setCount2]=React.useState(0);
返回(
setCount(count=>count+1)}>
setCount2(count2=>count2+1)}>
);
}
将每个文本
呈现在独立组件中。。。这样,每当每个计数器组件收到新道具时。。它将重新渲染
function FirstCounter ({ count }) {
console.log('FirstCounter', count);
return (
<Text>{count}</Text>
);
}
export default React.memo(FirstCounter);
function SecondCounter ({ count }) {
console.log('SecondCounter', count);
return (
<Text>{count}</Text>
);
}
export default React.memo(SecondCounter);
function App() {
/** state is it was */
const [count, setCount] = React.useState(0);
const [count2, setCount2] = React.useState(0);
return (
<SafeAreaView>
<TouchableOpacity onPress={() => setCount(count => count + 1)}>
<FirstCounter count={count} />
</TouchableOpacity>
<TouchableOpacity onPress={() => setCount2(count2 => count2 + 1)}>
<SecondCounter count={count2} />
</TouchableOpacity>
</SafeAreaView>
);
}
函数FirstCounter({count}){
console.log('FirstCounter',count);
报税表(
{count}
);
}
导出默认反应备忘录(FirstCounter);
函数SecondCounter({count}){
console.log('SecondCounter',count);
报税表(
{count}
);
}
导出默认反应备忘录(第二计数器);
函数App(){
/**是什么状态*/
const[count,setCount]=React.useState(0);
const[count2,setCount2]=React.useState(0);
返回(
setCount(count=>count+1)}>
setCount2(count2=>count2+1)}>
);
}
应答中存储的状态在哪里?此外,组件将重新渲染为其父组件渲染签出编辑…@我看到它是React.memo,因此仅当道具更改时,子组件才会重新渲染答案中存储的状态是什么?此外,组件将重新渲染为其父组件渲染签出编辑…@我看到它在那里是React.memo,因此只有在更改道具时才会重新渲染子组件-使用useMemo@AbuDujanaMahalail,你能再解释一下吗。谢谢使用useMemo@AbuDujanaMahalail,你能再解释一下吗。谢谢