0

我正在使用 React Native Reanimated。我无法更改将不同道具传递给组件的动画值。这是我的博览会代码:博览会代码

其实我想改变我的组件中的min变量,这样我就可以动态地改变动画。snappable.jsprops.minValue

const min = props.minDist ? props.minDist : 0

组件第一次获得道具但之后似乎不再改变。

这里我如何将道具传递给 Snappable 组件。

<View style={styles.container}>
    <Snappable minValue={this.state.min}/>
    <TouchableOpacity
    style={styles.touch}
    onPress={() => this.setState({min: 0})}>
    <Text>Change Props</Text>
  </TouchableOpacity>
</View>

提前致谢。

4

1 回答 1

1

这似乎有点到处都是。首先,您没有正确设置您的状态。您正在使用基于函数的组件,但尝试使用this.setState(). 此方法确实存在于功能组件中。如果要在功能组件中使用状态,则需要使用useState钩子。

其次,看起来你没有对组件minValue中的 prop做任何事情Snappable。您正在将一个minValue道具传递给组件,但您没有使用它。

编辑(添加挂钩示例):

你可以像这样使用钩子设置你的状态:

export default function App() {
    const [min, setMin] = React.useState(200)

    return (
        <View style={styles.container}>
        <Snappable minValue={min} />
        <TouchableOpacity
            style={styles.touch}
            onPress={() => setMin(0)}>
            <Text>Change Props</Text>
        </TouchableOpacity>
        </View>
    );
}

于 2020-04-08T17:09:38.003 回答