在React中,你可能會遇到想要使用包裝元件的場景封裝一組子元件並向它們傳遞一些公共屬性。
一種方法是使用 React.Children迭代子元素並使用 React.cloneElement 使用新的 props 克隆每個元素。但是,由於潛在的程式碼脆弱性,不建議使用此方法。
<br>const Child = ({ childName, sayHello }) =>; (<br> <button onclick="{()"> sayHello(childName)}>{childName}</button><br>);<p>function Parent({ Children }) {<br>函數sayHello(childName) {</p><pre class="brush:php;toolbar:false">console.log(`Hello from ${childName} the child`);
}
const ChildrenWithProps = React.Children.map(children, child => {
if (React.isValidElement(child)) { return React.cloneElement(child, { sayHello }); } return child;
})
})
返回
function App() {
// 類型安全性較低,但更簡單的替代方案
<Parent> <Child childName="Billy" /> <Child childName="Bob" /> </Parent>
);
ReactDOM.render(
以上是如何在React中有效率地將Props傳遞給this.props.children?的詳細內容。更多資訊請關注PHP中文網其他相關文章!