问题
I have below script in my react component which works when I refresh the component. But when I navigate between the routes it doesn't work.
import { inject, observer } from 'mobx-react'
import React from 'react'
@inject('store')
@observer
export default class Ads extends React.Component<{}> {
public componentDidMount() {
const div = document.createElement('div')
div.id = 'amzn_assoc_ad_div_adunit0_0'
const script = document.createElement('script')
script.type = 'text/javascript'
script.src = `//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US`
const s = document.createElement('script')
s.type = 'text/javascript'
const code = `amzn_assoc_placement = "adunit0";
amzn_assoc_tracking_id = "teamhansel-20";
amzn_assoc_ad_mode = "search";
amzn_assoc_ad_type = "smart";
amzn_assoc_marketplace = "amazon";
amzn_assoc_region = "US";
amzn_assoc_default_search_phrase = "Search Amazon For Cash Back";
amzn_assoc_default_category = "All";
amzn_assoc_linkid = "";
amzn_assoc_search_bar = "true";
amzn_assoc_search_bar_position = "top";
amzn_assoc_title = "Shop Related Products"`
s.appendChild(document.createTextNode(code))
const dom = document.getElementById('amazon-search-container')
if(dom) {
dom.appendChild(s)
dom.appendChild(script)
}
}
public render() {
return (
<div key={Math.random()}>
<div className="mt-3 item__wrapper" id="amazon-ads-container">
<div id="amazon-search-container"> </div>
<div id="amzn_assoc_ad_div_adunit0_0"> </div>
</div>
</div>
)
}
}
You can simply setup a react project and try this... please!!!
Thank you!!!
来源:https://stackoverflow.com/questions/54688337/load-amazon-script-in-react-component