我在react native中开发了几个类,出现了以下问题:
class Foo extends Component {
constructor(props) {
super(props)
this.state = {
days: [{text: 'Sofort', id: 1, selected: true}, {text: 'Morgen', id: 2, selected: false}, {text: 'Montag', id: 3, selected: false}, {text: 'Samstag', id: 4, selected: false}, {text: 'Sonntag', id: 5, selected: false}]
}
}
onDaySelection(selectedDay) {
// some logic to change the selected day
}
render() {
<Bar data={this.state.days} callback={this.onDaySelection(selectedDay)}>
}
}
酒吧类:
class Bar extends Component {
constructor(props) {
super(props)
let dataSource = new ListView.DataSource(
{rowHasChanged: (r1, r2) => r1.id !== r2.id}
)
this.state = {
dataSource: dataSource.cloneWithRows(this.props.days),
}
}
componentWillReceiveProps(newProps) {
let dataSource = new ListView.DataSource(
{rowHasChanged: (r1, r2) => r1.id !== r2.id}
)
this.state = {
dataSource: dataSource.cloneWithRows(newProps.days),
}
}
renderRow(rowData) {
let tick = rowData.selected? (
<Image source={require('../assets/images/Checkbox.png')}/>
): (
<Image source={require('../assets/images/CheckboxEmpty.png')}/>
)
return (
<View>
<TouchableOpacity
onPress={ () => {this.props.callback(rowData)}}
style={appStyles.flowRight}
>
{tick}
<Text>{rowData.text}</Text>
</TouchableOpacity>
</View>
)
}
render() {
return (
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow.bind(this)}
/>
)
}
}
class CustomCarouselIndicator extends Component {
constructor(props) {
super(props)
}
render() {
let indicatorArray = []
for(let i = 0; i < this.props.length; i++) {
indicatorArray.push(i)
}
let indicators = indicatorArray.map(index => {
let isSelected = index == this.props.selected
//Some more logic
})
return (
<View style={[appStyles.flowRight, {flex: 1, justifyContent: 'center', alignItems:'center'}, this.props.style]}>
{indicators}
</View>
)
}
}
构造函数只调用一次。每当更新道具时都会调用componentWillReceiveProps;这是这种逻辑的正确位置。
问题内容: 我一直在做大学项目的作业。有一次,当您实际上可以使用构造函数方法来实现相同的结果时,我对于getter和setter的实际使用感到困惑。我已经搜索并找到许多答案,但没有令人满意的解释。我有如下laptop.java 和laoptopRecords.java调用构造函数为 在这里,我没有使用getter和setter方法,并且为每个便携式计算机对象都获得了理想的结果。 如果我以如下方式在
问题内容: 其实我不明白,无参数构造函数和默认构造函数有什么区别。 创建名为cFrame的Test对象时,这是否调用此类的默认构造函数? 问题答案: 该构造函数是一个无参数的构造函数,代表您的Java编译器插入; 它包含对(not )的调用,这是默认行为。如果实现任何构造函数,则不再收到默认的构造函数。 JLS-8.8.9。默认构造函数说(部分), 如果一个类不包含构造函数声明,则隐式声明一个没有
问题内容: 在同一个开发人员将RegExp字面量更改为构造函数调用后,我们最近遇到了一个错误,我想知道为什么根本没有区别。确切的代码是 与原始的 例如,当为时,第一个(越野车)呼叫返回,而第二个(返回) 不用说,我撤消了更改,但是我想知道为什么首先会有如此不同。 问题答案: 有两个问题: 的是 不 表达的一部分。它们是 分隔符 ,标记了正则表达式文字。如果使用则必须将其删除,否则它们在字面上会匹配
问题内容: 我已经出于好奇而开始学习 React ,并且想知道React和React Native之间的区别- 尽管使用Google找不到满意的答案。React和React Native似乎具有相同的格式。它们的语法完全不同吗? 问题答案: ReactJS是一个JavaScript库,它支持前端Web并在服务器上运行,用于构建用户界面和Web应用程序。它遵循可重用组件的概念。 React Nati
问题内容: 我见过两者可以互换使用。 两者的主要用例是什么?有优点/缺点吗?是更好的做法吗? 问题答案: 这两种方法不可互换。使用ES6类时,应在构造函数中初始化状态,并使用时定义方法。 请参阅有关ES6类的官方React文档。 相当于
问题内容: 最近,我经常使用枚举。所以我想知道… 私有Enum构造函数和带有任何可见性修饰符(package-private)的枚举构造函数之间有什么区别吗? 问题答案: 根据java 文档 枚举类型的构造函数必须是程序包私有或私有访问。 但加入了JLS 如果没有为枚举类型的构造函数指定访问修饰符,则该构造函数为私有。 因此,package-private和private之间没有区别。