Checkbox 更改复选框状态

Checkbox 更改复选框状态,checkbox,react-native,Checkbox,React Native,我正在尝试创建包含多行的ListView。每行有一个复选框+文本。 这是我对ListView的实现: class ListExample extends Component { constructor() { super(); const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); this.state = { dataSource: d

我正在尝试创建包含多行的ListView。每行有一个复选框+文本。 这是我对ListView的实现:

class ListExample extends Component {

  constructor() {
      super();
      const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
      this.state = {
        dataSource: ds.cloneWithRows(["hey1", "hey2", "hey3", "hey4"]),
      };
    }

    render() {
      return (
        <ListView
          dataSource={this.state.dataSource}
          renderRow={(data) => <Row data={data} />}
        />
      );
    }
}
export default ListExample;
class ListExample扩展组件{
构造函数(){
超级();
const ds=new ListView.DataSource({rowHasChanged:(r1,r2)=>r1!==r2});
此.state={
数据源:ds.cloneWithRows([“hey1”、“hey2”、“hey3”、“hey4”),
};
}
render(){
返回(
}
/>
);
}
}
导出默认列表示例;
这是我对一行的实现:

import React from 'react';
import { CheckBox } from 'native-base';
import { View, Text, StyleSheet} from 'react-native';

const Row = (props) => (
  <View style={styles.container}>
    <CheckBox onPress={props.onPress} checked={false} />
    <Text style={styles.text}>
      { props.data }
    </Text>
  </View>
);
export { Row };
从“React”导入React;
从“本机基”导入{CheckBox};
从“react native”导入{View,Text,StyleSheet};
常量行=(道具)=>(
{props.data}
);
出口{Row};
现在我需要在复选框上创建行为。我的目标是当一个人点击复选框时,复选框的状态变为选中


如何才能做到这一点?

您可以使用行组件的状态:

import React, { Component } from 'react';
import { CheckBox } from 'native-base';
import { View, Text, StyleSheet} from 'react-native';

class Row extends Component {
  constructor(props) {
    super(props);
    this.state = { checked: false };
  }

  render() {
    return (
      <View style={styles.container}>
        <CheckBox
          onPress={() => this.setState({
            checked: !this.state.checked
          })}
          checked={this.state.checked}
        />
        <Text style={styles.text}>
          { props.data }
        </Text>
      </View>
    );
  }
}

export default Row;
import React,{Component}来自'React';
从“本机基”导入{CheckBox};
从“react native”导入{View,Text,StyleSheet};
类行扩展组件{
建造师(道具){
超级(道具);
this.state={checked:false};
}
render(){
返回(
这是我的国家({
选中:!this.state.checked
})}
checked={this.state.checked}
/>
{props.data}
);
}
}
导出默认行;

I收到此错误“元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。请检查
StaticRenderer
“@guitoofI更改为“export{Row};”的呈现方法,现在可以工作了。非常感谢。哦,是的,很抱歉,我用导出默认值在本地测试了它,但忘了在我的答案中更改它。很高兴这有帮助;)尽情享受吧!