Решением React будет создание компонента, который будет визуализировать p
или input
в зависимости от некоторого свойства, например
function Comp(props){
if(props.dataMiniSlug)
return <p/>
else
return <input/>
}
Если по какой-то причине вам необходимо изменить DOM (виртуальный) так, как вы пытаетесь это сделать, вы можете рекурсивно пройти через детей с помощью React.Children API, подобного этому.
render() {
const rootNode = super.render();
return transform (rootNode)
}
transform(node) {
if(node.props.children){
return React.Children.map(element.props.children, transform)
}
if (node.type === "p" && node.props['data-mini-slug'] !== undefined) {
return <input { ...node.props, value: `New props is ${node.props['data-mini-slug']}`}/>
}
return node
}
Опять же, я настоятельно советую вам пересмотреть весь этот подход, иначе надеюсь, что он как-то полезен.