title: Data location must be "calldata" for parameter in external function, but none was given
body: <p>I have got the below error in Remix for function written in Solidity.</p>
  
  <p>I think it is because the smart contract was written with a version of solidity below solidity ^0.5.0 and now the more up to date compilers have different requirements. </p>
  
  <p>I'm sure the correction is easy but I am new to solidity and cannot seem to solve it. Any help would be much appreciated!</p>
  
  <p>The external function is; </p>
  
  <pre><code> function TransferFrom(
      address _from,
      address _to,
      uint256 _tokenId,
      bytes _data
    )
      external;
  </code></pre>
  
  <p>The error is: </p>
  
  <pre><code>Data location must be "calldata" for parameter in external function, 
  but none was given.
  bytes _data
  ^----------^
  </code></pre>