Javascript 如何在单击时设置图标名称

Javascript 如何在单击时设置图标名称,javascript,react-native,Javascript,React Native,在标题中,我添加了左组件-图标,我想在单击时设置图标。我该怎么做 我试图设置状态值并返回依赖于此值的组件 <Header placement="left" leftComponent={ <Icon name='keyboard-arrow-left' color='#ffffff' size={40}

在标题中,我添加了左组件-图标,我想在单击时设置图标。我该怎么做

我试图设置状态值并返回依赖于此值的组件

<Header
            placement="left"
            leftComponent={  
              <Icon 
                name='keyboard-arrow-left'
                color='#ffffff'
                size={40}
                onPress={}
              />
            }
            centerComponent={<Text>User Info</Text>}
          />

您可以为图标创建单独的组件

export class MyIcon extends Component {
  state = { name: 'keyboard-arrow-left' }

  render() {
    return (
      <Icon 
        name={this.state.name}
        color='#ffffff'
        size={40}
        onPress={() => this.setState({ name: 'close' })}
      />
    );
  }
}

可以为图标创建单独的组件

export class MyIcon extends Component {
  state = { name: 'keyboard-arrow-left' }

  render() {
    return (
      <Icon 
        name={this.state.name}
        color='#ffffff'
        size={40}
        onPress={() => this.setState({ name: 'close' })}
      />
    );
  }
}

解决此问题的最简单方法是添加对图标组件的引用。然后使用该引用更改图标的任何道具

constructor(props){
    super(props);
    this.state = {};
    this.myIcon = ''; 
}

updateIconName = (nameEntered) => {
    this.myIcon.name = nameEntered;
}

render() {
    return(
        <View style={{flex: 1}}>
            <Header
                placement="left"
                leftComponent={  
                    <Icon 
                        name='keyboard-arrow-left'
                        color='#ffffff'
                        size={40}
                        onPress={this.updateIconName}
                        ref={(element) => {this.myIcon = element;}}
                    />
                }
                centerComponent={<Text>User Info</Text>}
            />
        </View>
    );
}
构造函数(道具){
超级(道具);
this.state={};
this.myIcon='';
}
UpdateConName=(输入的名称)=>{
this.myIcon.name=输入的名称;
}
render(){
返回(
}
centerComponent={User Info}
/>
);
}

解决此问题的最简单方法是添加对图标组件的引用。然后使用该引用更改图标的任何道具

constructor(props){
    super(props);
    this.state = {};
    this.myIcon = ''; 
}

updateIconName = (nameEntered) => {
    this.myIcon.name = nameEntered;
}

render() {
    return(
        <View style={{flex: 1}}>
            <Header
                placement="left"
                leftComponent={  
                    <Icon 
                        name='keyboard-arrow-left'
                        color='#ffffff'
                        size={40}
                        onPress={this.updateIconName}
                        ref={(element) => {this.myIcon = element;}}
                    />
                }
                centerComponent={<Text>User Info</Text>}
            />
        </View>
    );
}
构造函数(道具){
超级(道具);
this.state={};
this.myIcon='';
}
UpdateConName=(输入的名称)=>{
this.myIcon.name=输入的名称;
}
render(){
返回(
}
centerComponent={User Info}
/>
);
}