如何在点击反应0.14 ES6时清除状态或清空数组?

时间:2016-02-17 19:46:52

标签: javascript reactjs functional-programming ecmascript-6

我在一个模态中渲染一个数组。一旦模态关闭,我需要清空数组。以下代码更新数组但不点击closeModal时不清除数组。

// Write swf file locally using file_put_contents();
$fileName = ""; // The filepath where you've written it to

header("Content-Type: application/x-shockwave-flash",true);    
header("Content-Length: {strlen($fileName)}",true);    
header("Accept-Ranges: bytes",true);    
header("Connection: keep-alive",true);   
header("Content-Disposition: inline; filename=$fileName");  

readfile($fileName);

5 个答案:

答案 0 :(得分:7)

我发现问题是我的closeModal在关闭模态时根本没有被调用。我这样做是为了关闭componentWillUnmount函数的closeModal。 我明白以下代码会导致问题。

this.state.myArray=[]

我把它改回了

this.setState({myArray: []});

答案 1 :(得分:1)

可以在此找到几个解释的解决方案(尽管在ES5中):

https://stackoverflow.com/a/29994490/4572987

答案 2 :(得分:1)

这对我有用。
基于类的组件

this.setState({myArray: []});

使用 React Hook,

const [myArray, setMayArray] = React.useState([]);
setMayArray([]);

答案 3 :(得分:0)

您也可以在不使用setState的情况下使用它来清除数组:

   this.state.your_array.length = 0;

这将在任何功能中起作用。

答案 4 :(得分:0)

this.state.array.splice();

这将删除或截断整个数组