add() {
rendercomponent.push(UiInput);
childJson.push(this.dynamicJson())
this.setState({ documents: rendercomponent, Json: childJson });
}
componentDidMount() {
rendercomponent.push(UiInput);
this.setState({ documents: rendercomponent })
}
dynamicJson() {
return {
"service": this.state.formValues.text,
"tax": this.state.formValues.tax,
"amount": this.state.formValues.amount
}
}
popComponent = (index) => {
console.log(`in parent-->>${index}`)
rendercomponent.splice(index, 1);
childJson.splice(index, 1);
this.setState({ documents: rendercomponent,Json: childJson,formValues:{} })
}; render() {
return (
<div>
{this.state.documents.map((Element, index) => {
return <Element key={index} index={index} onUpdate={this.onUpdate} popComponent={() => this.popComponent(index)} />
})}
</div>
);
}
array.splice
无法正常工作它总是删除数组中的最后一个元素
在我的UI中,有一个按钮可以添加组件,在该按钮add()
上调用函数
还有删除按钮,在删除按钮popComponent()
上调用函数。
我想删除特定元素,它总是删除redercomponent数组中的最后一个元素。
请帮我解决这个问题
答案 0 :(得分:0)
package sometests
import (
"fmt"
"testing"
)
func TestScanf(t *testing.T) {
fmt.Printf("type someting:\n")
var s string
fmt.Scanf("%s\n", &s)
// test should wait here for me to type, but it won't
fmt.Printf("you type: %q\n", s)
}
会改变对象splice
,但不会更改该对象的引用。如果引用没有改变,则反应将不会重新呈现它,因为根据react的diffing算法,它不会有所不同。因此,您可以使用rendercomponent
代替slice
。这样新对象的引用对于早期的对象应该是不同的。
检查splice
也许
rendercomponent!== rendercomponentModified
答案 1 :(得分:0)
如果index为-1, pv = pd.pivot_table(df, index=['customer_name2'], columns=['FY'], values=['amount'], aggfunc=sum, fill_value=0)
pv2 = pv.reindex(pv['amount'].sort_values(by='FY17', ascending=True).index).head(x_bottom)
trace1 = go.Bar(x=pv2.index, y=pv2[('amount','FY17')], name='Revenue')
graphs.append(html.Div(dcc.Graph(
id='chart_id_6',
figure={
'data': [trace1],
'layout': {
'title': 'Bottom ' + str(x_bottom) + ' Customers'
}
})))
将只删除数组的最后一项