const ItemView = ({title, onPress, isActive}) => (
<TouchableOpacity onPress={onPress}>
<View style={[styles.itemVTextBox,
isActive ? styles.activeItemVTextBox : null
]}>
<Text style={[
styles.item,
isActive ? styles.activeItem : null
]}>{title}</Text>
</View>
</TouchableOpacity>
);
誰かがこのコードをrender
に書きます。React Native:ユーザー定義コンポーネントを定義するベストプラクティスは何ですか?
このコードをimport
とclass define
の間に挿入すると、このコードも機能します。
私のコードは次のようである:私の意見では
import React, {Component, PropTypes} from "react";
import {
View,
Image,
Text,
ListView,
Dimensions,
StyleSheet,
TouchableOpacity,
} from 'react-native';
const ItemView = ({title, onPress, isActive}) => (
<TouchableOpacity onPress={onPress}>
<View style={[styles.itemVTextBox,
isActive ? styles.activeItemVTextBox : null
]}>
<Text style={[
styles.item,
isActive ? styles.activeItem : null
]}>{title}</Text>
</View>
</TouchableOpacity>
);
class MyOrder extends Component {
render(){
return (
...
)
}
}
、render
関数が数回実行されます。 import code
とclass define
コードの間にコードを挿入すると、コードは1回実行されます。
私の見解は正しいですか?
このユーザー定義コードを別のファイルに置く必要はありますか? container component
で
export default const ItemView = ({title, onPress, isActive}) => (
<TouchableOpacity onPress={onPress}>
<View style={[styles.itemVTextBox,
isActive ? styles.activeItemVTextBox : null
]}>
<Text style={[
styles.item,
isActive ? styles.activeItem : null
]}>{title}</Text>
</View>
</TouchableOpacity>
);
: 'filePathに' から
インポートItemView別のファイルに
。
このプラクティスは優れていますか?ボタンで
//Button.js
import React, {Component, PropTypes} from "react";
import {
View,
Image,
Text,
ListView,
Dimensions,
StyleSheet,
TouchableOpacity,
} from 'react-native';
const Button = (props) => {
const { title,onpress,isActive } = this.props
return (
<TouchableOpacity onPress={onPress}>
<View style={[styles.itemVTextBox,
isActive ? styles.activeItemVTextBox : null
]}>
<Text style={[
styles.item,
isActive ? styles.activeItem : null
]}>{title}</Text>
</View>
</TouchableOpacity>
);
}
export default Button
//Main component
import Button from '@.../Button.js'
class MyOrder extends Component {
render(){
return (
<Button title='login' isActive={false} onPress={this.loginButtonPressed()} />
...
)
}
}
:そう以下、それあなたが常に再利用可能なコンポーネント用に別のフォルダを定義した場合、それは良い練習することができ、再利用可能なコンポーネント作成のほぼすべてのコンポーネントを使用している
コードを再利用する場合は、コンポーネントとしてラップしてください。しかし、レンダリングメソッドが呼び出される回数だけこのメソッドを呼び出すことになります(レンダリングの中でそのメソッドを呼び出すことを想起しています)。コードが一度だけ実行されると思うように導くのは何ですか? また、あなたはFacebookチームが提案した基準に従っていません。 –
レンダリング機能は数回実行されると思います。したがって、const文は数回実行されます。定義されたコードをレンダー機能から外した場合、定義された文が一度実行されたと思います。 – jiexishede