当我得到一个参数传递的值设置在useState已经声明了默认值第一它呈现与以前的(默认)值,然后呈现与新的值,我在参数传递..是有一种可能的方式来呈现后,才收到新的值!?如果我不清楚描述我的问题,请不要犹豫,问我更多的细节..提前感谢.尝试使用新值设置useState,预期组件在收到新值后呈现,但未使用默认值。
yjghlzjz1#
如果你能提供一个代码片段,可以帮助。您可以提供具有如下初始状态的子组件:
const ParentComponent = () => { const [initialValue, setInitialValue] = useState("Initial value") return <ChildComponent key={initialValue} initialValue={initialValue} /> } const ChildComponent = ({ initialValue }) => { const [inputValue, setInputValue] = useState(initialValue) return <input value={inputValue} onChange={handleChange} /> }
子组件的key属性将强制在每次initialValue更改时创建一个新示例,这也应该只使用您传递给它的状态来呈现组件。这对于小型组件是有效的,但是如果您正在子组件中获取数据或处理复杂的逻辑,那么您肯定应该在子组件中处理状态。例如,如果状态为null,则也不能通过在返回部分中使用三元运算来呈现组件:
key
initialValue
null
// ... return initialValue ? ( <input value={inputValue} onChange={handleChange} /> ) : null // ...
yrdbyhpb2#
请使用以下呈现逻辑
class TestComponent extends React.Component { render(){ const {data}=this.props; return(<Fragment> {(data?<div>{data.id}</div>:null)} </Fragment>); } }
2条答案
按热度按时间yjghlzjz1#
如果你能提供一个代码片段,可以帮助。
您可以提供具有如下初始状态的子组件:
子组件的
key
属性将强制在每次initialValue
更改时创建一个新示例,这也应该只使用您传递给它的状态来呈现组件。这对于小型组件是有效的,但是如果您正在子组件中获取数据或处理复杂的逻辑,那么您肯定应该在子组件中处理状态。
例如,如果状态为
null
,则也不能通过在返回部分中使用三元运算来呈现组件:yrdbyhpb2#
请使用以下呈现逻辑