Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在功能组件内更改道具值会导致组件出现问题吗?_Javascript_Reactjs - Fatal编程技术网

Javascript 在功能组件内更改道具值会导致组件出现问题吗?

Javascript 在功能组件内更改道具值会导致组件出现问题吗?,javascript,reactjs,Javascript,Reactjs,如果我收到一个道具并在我的功能组件中更改它,它会产生问题吗?或者可以在组件内部更改它 e、 g 我知道我可以创建另一个变量并存储值,但我想知道更改道具本身是否不会导致任何问题,因为它是一个功能组件。React中的道具只是只读变量。您应该通过父组件更改props值,React中的props只是只读变量。您应该通过父组件更改道具值I避免更改道具。 const baz = foo === condition ? bar : foo 但我创建了一个简单的示例,更改子组件中的道具不会影响父组件中的值 我

如果我收到一个道具并在我的功能组件中更改它,它会产生问题吗?或者可以在组件内部更改它

e、 g


我知道我可以创建另一个变量并存储值,但我想知道更改道具本身是否不会导致任何问题,因为它是一个功能组件。

React中的道具只是只读变量。您应该通过父组件更改props值,React中的props只是只读变量。您应该通过父组件更改道具值

I避免更改道具。
const baz = foo === condition ? bar : foo
但我创建了一个简单的示例,更改子组件中的道具不会影响父组件中的值


我用几个渲染器测试了它。这就是我添加输入的原因。键入它会使组件重新加载。

我避免更改道具。 但我创建了一个简单的示例,更改子组件中的道具不会影响父组件中的值


我用几个渲染器测试了它。这就是我添加输入的原因。键入它会使组件重新运行。

如果示例中的foo是从parrent传递的,并且parrent将其保持在其状态,那么您还需要将setFoo作为参数传递给组件,并使用它来正确更新它

function Parrent(){  
  let [foo, setFoo] = useState('foo');  
  return <Child foo={foo} setFoo={setFoo}/>
}

至于直接更改道具,如果道具是数组或对象,则可以进行更改。

如果示例中的foo是从parrent传递的,并且parrent将其保持在其状态,则还需要将setFoo作为参数传递给组件,并使用该参数正确更新它

function Parrent(){  
  let [foo, setFoo] = useState('foo');  
  return <Child foo={foo} setFoo={setFoo}/>
}

至于直接更改道具,如果道具是阵列或对象,则可以进行更改。

不,这不会产生任何问题。与常规函数一样,传递的参数在函数作用域中是它们自己的变量,不会改变传递给函数的原始值

函数somethingvalue{ 值='无'; } var=0; 什么事,什么事; //任何值都应为0;
任何事 不,这不会造成任何问题。与常规函数一样,传递的参数在函数作用域中是它们自己的变量,不会改变传递给函数的原始值

函数somethingvalue{ 值='无'; } var=0; 什么事,什么事; //任何值都应为0; 任何事; React中有两种数据

可修改数据 B可变数据

您不应该更改不可变的数据。有一些方法可以做到这一点,但不推荐这样做。您应该做的是,您不能从这里分配回调和更改,我稍后将解释原因

如果只想使用此组件中的值

const baz = foo === condition ? bar : foo
或者基于满足某些条件的foo渲染某些内容

return (
 <div>
  {foo === somecondition ? <A /> : <B />}
 </div>

 )
React中有两种数据

可修改数据 B可变数据

您不应该更改不可变的数据。有一些方法可以做到这一点,但不推荐这样做。您应该做的是,您不能从这里分配回调和更改,我稍后将解释原因

如果只想使用此组件中的值

const baz = foo === condition ? bar : foo
或者基于满足某些条件的foo渲染某些内容

return (
 <div>
  {foo === somecondition ? <A /> : <B />}
 </div>

 )