私はcreate-react-appと反応してフルスクリーンの回転掲示板を作っています。React buildはコンポーネントクラスの名前を削除します
App
コンポーネントは、多くのScreen
のコンポーネントが含まれている、(WiFiPassword、OpenTimes、イベントなどの名前...)1つのコンポーネントを含む各1 - そしてそれは子供だのApp
から現在の項目が名前である場合Screen
コンポーネントをチェックし、それが表示されている場合はその画面を表示し、そうでない場合は非表示にします。
これは、値がチェックされているコードです:
class Screen extends Component {
componentDidUpdate() {
const active = this.props.active; // The active item, from parent state
const elemName = this.props.children.type.name; //The name of the child class
...
if(active === elemName){
//If we have a match, then show this screen
}
}
...
}
開発で動作しているとき、これは本当によく働きます。
npm run build
を実行してプロセスが終了すると、アプリケーションがロードされても機能しません。ビルドプロセスは要素からクラス名をスクラブして、何も表示されないことを意味します。
私はconsole.log()
アクティブ小道具と子のクラス名の両方が、私はこれを取得:Screen
年代の名前である、それは上にあるものは何でも画面
active: WiFiPassword
elemName: t
、elemName
を、子は、常にですt
ビルドプロセスを通じて反応するコンポーネントの名前を保持する方法はありますか?
この質問は、[XY問題](http://xyproblem.infoです/)、しかし幸運にもXはその質問から明らかです。解決策は、 'App'の' render() 'に表示されている' Screen'だけをレンダリングすることです。 –
子供のインデックスとは対照的に、コンポーネントをその名前で参照する必要があるのはなぜですか? – Aron
各には1つの子しかないので、画面の内容です。 は単にアニメーションを処理し、表示するときはコンテンツは非ウェブ開発者によって追加されます。私は代わりに、に小道具を渡してから、コンポーネントを動的に引き込みます。 –
Cone